mywheels/twig-spreadsheet-bundle
Twig Spreadsheet Bundle brings Twig templating to spreadsheet generation, letting you define workbook layouts in familiar templates and export structured data to spreadsheet files from your PHP or Symfony application.
.xlsx/Twig template once, render it with application data. It supports the decision of whether to invest in user-facing exports for reports, invoices, statements, reconciliation sheets, or bulk data pulls in any B2B or finance-adjacent workflow.Consider it only as a reference implementation or for an existing legacy Symfony 3/4 app on PHP 7.x that already runs PhpSpreadsheet and needs Twig-templated exports quickly. Even there, treat it as code to copy, not a dependency to install.
Signals that make adoption untenable for anything new:
Look elsewhere for: new builds, anything on PHP 8.1+, anything customer-facing at scale, anything requiring an SLA. Reach for PhpSpreadsheet directly, Laravel Excel / OpenSpout on the Laravel side, or offload reporting to a BI layer.
For executives: The idea is proven and cheap; the artifact is stale. Report exports are expected in every B2B product we sell into, and this package demonstrates that a template-based approach gets us there with low engineering cost. But it hasn't been maintained since 2019 and has essentially no user base, so adopting it as a dependency imports upgrade and security risk in exchange for saving a sprint. Recommendation: fund a thin internal wrapper, borrowed from this design, rather than taking the dependency.
For engineering: Don't composer require it. Read it as a design reference for separating report layout (template) from data assembly (service), then implement ~200 lines against the current PhpSpreadsheet release, with tests and pinned versions. If we're on Laravel, use the maintained ecosystem packages instead — this bundle's Twig binding is Symfony-specific and won't transfer.
For design/ops stakeholders: The user-facing win is that finance and implementation teams can adjust report layouts without an engineering ticket. That's the capability worth buying; the specific library is not.
The headline: Validate the pattern, reject the package. Low score, low stars, and a five-year-old last release make this a "steal the idea" decision, not an adoption decision.
How can I help you explore Laravel packages today?