slam / php-excel
v5.1.0
2021-12-20 14:40 UTC
Requires
- php: >=8.0
- ext-iconv: *
- ext-mbstring: *
Requires (Dev)
- malukenho/mcbumpface: ^1.1.5
- mikey179/vfsstream: ^1.6.10
- phpoffice/phpspreadsheet: ^1.20.0
- phpstan/phpstan: ^1.2.0
- phpstan/phpstan-phpunit: ^1.0.0
- phpunit/phpunit: ^9.5.10
- slam/php-cs-fixer-extensions: ^3.1.0
- slam/php-debug-r: ^1.7.0
- slam/phpstan-extensions: ^6.0.0
README
Slam PHPExcel 旧版 & 更快
该包不是旨在完全和灵活,而是为了 快速。
PHPOffice/PHPExcel 和 PHPOffice/PhpSpreadsheet 是非常好的库,但它们在写入磁盘之前在内存中抽象了一切。如果你需要写入一个包含数千行和数百列的大型 XLS 文件,这将非常低效且速度慢。
基于 Spreadsheet_Excel_Writer v0.9.3,它可以在 Github 上找到。这不是一个分支:我复制了它,并调整以与 PHP 7.1 兼容,并应用了一些编码标准修复和一些 Scrutinizer 补丁。
安装
composer require slam/php-excel
使用
从版本 4 开始,代码分为两部分
Slam\Excel\Pear
命名空间,原始 Pear 代码Slam\Excel\Helper
命名空间,一个用于在表格结构上应用简单样式的辅助器
use Slam\Excel\Helper as ExcelHelper; require __DIR__ . '/vendor/autoload.php'; // Being an Iterator, the data can be any dinamically generated content // for example a PDOStatement set on unbuffered query $users = new ArrayIterator([ [ 'column_1' => 'John', 'column_2' => '123.45', 'column_3' => '2017-05-08', ], [ 'column_1' => 'Mary', 'column_2' => '4321.09', 'column_3' => '2018-05-08', ], ]); $columnCollection = new ExcelHelper\ColumnCollection([ new ExcelHelper\Column('column_1', 'User', 10, new ExcelHelper\CellStyle\Text()), new ExcelHelper\Column('column_2', 'Amount', 15, new ExcelHelper\CellStyle\Amount()), new ExcelHelper\Column('column_3', 'Date', 15, new ExcelHelper\CellStyle\Date()), ]); $filename = sprintf('%s/my_excel_%s.xls', __DIR__, uniqid()); $phpExcel = new ExcelHelper\TableWorkbook($filename); $worksheet = $phpExcel->addWorksheet('My Users'); $table = new ExcelHelper\Table($worksheet, 0, 0, 'My Heading', $users); $table->setColumnCollection($columnCollection); $phpExcel->writeTable($table); $phpExcel->close();
结果