- How do I install portphp/spreadsheet in a Laravel application?
- Install it with Composer using the package name portphp/spreadsheet, but pin exact versions for PortPHP and PhpSpreadsheet in your composer.json. The package is not Laravel-native, so you will still need to wire it into your application services, storage disks, and jobs yourself. Run a small proof of concept before adopting it broadly.
- Which Laravel and PHP versions does portphp/spreadsheet support?
- The package metadata does not establish tested Laravel or PHP version support, so you should not assume compatibility. Build a small compatibility matrix covering PHP, Laravel, PortPHP, and PhpSpreadsheet versions. Test on the oldest and newest runtimes you plan to support before rollout.
- Can portphp/spreadsheet read .xlsx, .xls and .csv files?
- Yes, it provides PortPHP readers backed by PhpSpreadsheet for Excel and CSV sources such as .xlsx, .xls, and .csv. You read rows through a Port reader and then transform or persist them in your pipeline. Validate uploaded file types and test representative fixtures because large-file and malformed-file behavior is not documented in the package metadata.
- How do I export query results to Excel in Laravel using PortPHP?
- Map your query results or arrays into rows and write them through a PortPHP writer backed by PhpSpreadsheet. You can configure workbook headers, sheets, and formatting options, but confirm the exact supported options rather than assuming full PhpSpreadsheet parity. Keep the exporter behind an application-owned service interface so controllers and jobs do not depend on PortPHP directly.
- Is portphp/spreadsheet a replacement for Maatwebsite/Excel or direct PhpSpreadsheet?
- No, it is a narrow adapter that bridges PortPHP pipelines to PhpSpreadsheet rather than a Laravel-native Excel package. It adds value mainly if you are already standardizing imports and exports on PortPHP. If you already use Maatwebsite/Excel or direct PhpSpreadsheet, adopting this package may add unnecessary complexity.
- What are the production risks of using portphp/spreadsheet?
- The package has low adoption, an unknown canonical repository, and a future-dated release, which raises provenance and maintenance concerns. Version skew between PortPHP and PhpSpreadsheet is the main integration risk, and spreadsheet processing adds memory, CPU, formula, date, locale, and file-upload security risks. Pin versions, add integration tests, and retain a fallback implementation if the package is abandoned.
- How should I handle large spreadsheet imports and memory usage with PortPHP?
- Large-file behavior and streaming support are not established by the package metadata, so test with realistic file sizes before relying on it. Run imports in queued jobs with explicit memory and time limits, clean up temporary files, and consider chunked processing. If streaming is required, verify whether the underlying PhpSpreadsheet reader options are exposed by the adapter.
- Does portphp/spreadsheet handle formulas, dates, styles, and empty rows correctly?
- The package metadata does not document formula, date serialization, style, encoding, or empty-row behavior, so you must validate these with fixtures. Do not assume parity with PhpSpreadsheet options unless the adapter explicitly supports them. Test date formats, character encoding, formulas, and blank rows in both import and export flows.
- Is portphp/spreadsheet actively maintained and who maintains it?
- The canonical repository and maintainer are not identified in the available metadata, and the future-dated release plus low star count suggest limited activity. Expect community-only support, limited documentation, and uncertain response times. Budget for forking, patching, or vendoring the package if it becomes unmaintained.
- What is the best alternative to portphp/spreadsheet for Laravel Excel imports and exports?
- For most Laravel applications, Maatwebsite/Excel or direct PhpSpreadsheet usage is a simpler and better-supported choice. Use portphp/spreadsheet only when you already have PortPHP pipelines and want a consistent adapter boundary. Whichever option you choose, wrap it behind an application-owned SpreadsheetImportService or SpreadsheetExportService interface to keep migration paths open.