https://github.com/iter8-au/builder
A spreadsheet generator provider for Silex (uses PhpSpreadsheet or Spout)
https://github.com/iter8-au/builder
excel phpspreadsheet silex spout
Last synced: about 1 year ago
JSON representation
A spreadsheet generator provider for Silex (uses PhpSpreadsheet or Spout)
- Host: GitHub
- URL: https://github.com/iter8-au/builder
- Owner: iter8-au
- License: mit
- Created: 2016-07-04T07:59:59.000Z (almost 10 years ago)
- Default Branch: 4.x
- Last Pushed: 2021-03-01T12:20:05.000Z (over 5 years ago)
- Last Synced: 2025-03-24T19:49:05.984Z (about 1 year ago)
- Topics: excel, phpspreadsheet, silex, spout
- Language: PHP
- Homepage:
- Size: 137 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Builder
A wrapper for the PhpSpreadsheet and Spout libraries to help you quickly build Excel reports.
## Requirements
- Silex ~2.x
## Example Usage
```php
$app['builder.default'] = 'spout'; // or 'phpspreadsheet'
$app['builder.cache_dir'] = '/var/cache';
$app->register(new BuilderServiceProvider());
// --- OR ---
$app->register(
new BuilderServiceProvider(),
[
'builder.default' => 'phpspreadsheet',
'builder.cache_dir' => '/var/cache',
]
);
```
```php
$builder = $app['builder'];
$reportArray = [
'headers' => [
'Column 1',
'Column B',
],
'rows' => [
[
'Some Data',
'Some Other Data',
],
[
'Some Data 2',
'Some Other Data 2',
],
],
];
$builder->setSheets([$reportArray]);
$builder->setCreator('App Name');
$builder->setTitle('My Spreadsheet');
$builder->setSheetTitles(['Sheet 1']);
$builder->setDescription('Spreadsheet that contains some data');
$builder->setFilename('App_Name_Spreadsheet_' . $startDate->format('d_m_Y'));
// use generate() to output headers and force file download.
$builder->generate();
// use generateExcel() to create the file.
$builder->generateExcel();
```
Both Builders are available under the `$app['builders']` key, but `$app['builder']` will be the default builder you specify.
### PhpSpreadsheet
Accessible via `$app['builders']['phpspreadsheet']`.
### Spout
Accessible via `$app['builders']['spout']`.
## Feature Parity
Feature | PhpSpreadsheet | Spout
------- | -------- | -----
Cell Alignment | Yes | No
Auto-sizing Columns | Yes | No
Custom Column Widths | Yes | No
Document Properties | Yes | No
Header Styling | Yes | Yes
Multiple Sheets | Yes | Yes
## Development
### Todo
* Allow both caching when building a report as well as short term or perm-caching to a configured location.
## Testing
Minimal tests can be performed with PHPUnit.
### Unit Tests
`composer tests` or `./vendor/bin/phpunit`
### Code Coverage
`composer coverage`
These will be available in `./builder_coverage`.