imtigger / oneexcel
PHP Excel 读写抽象层,支持 PhpSpreadSheet、LibXL、Spout 和 PHP fputcsv
v0.7.3
2019-05-07 13:42 UTC
Requires
- php: >=5.6.4
- box/spout: ^2.7
- phpoffice/phpspreadsheet: ^1.0
Requires (Dev)
- phpunit/phpunit: ^5.7
Suggests
- ext-excel: Required for LibXL driver
README
PHP Excel 读写抽象层,支持 PhpSpreadSheet、LibXL、Spout 和 PHP fputcsv
/fgetcsv
旨在简化 Excel 库之间的服务器兼容性问题以及大型文件中的性能问题。
非常适合格式简单但文件巨大的电子表格,如报表。
安装
要求
- PHP >= 5.6.4
php_zip
、php_xmlreader
、php_simplexml
已启用- (推荐) 已安装 LibXL 且
php_excel
已启用
Composer
OneExcel 只能通过 Composer 安装。
运行以下命令
$ composer require imtigger/oneexcel
写入器
基本用法
$excel = OneExcelWriterFactory::create() ->toFile('excel.xlsx') ->make(); $excel->writeCell(1, 0, 'Hello'); $excel->writeCell(2, 1, 'World'); $excel->writeCell(3, 2, 3.141592653, ColumnType::NUMERIC); $excel->writeRow(4, ['One', 'Excel']); $excel->writeCell(4, 2, 'Test'); $excel->output(); ```Selection](driver.md) ### Advanced Usage ```php $excel = OneExcelWriterFactory::create() ->fromFile('template.xlsx', Format::XLSX) ->toStream('excel.csv', Format::CSV) ->withDriver(Driver::SPOUT) ->make(); $excel->writeCell(1, 0, 'Hello'); $excel->writeCell(2, 1, 'World'); $excel->writeCell(3, 2, 3.141592653, ColumnType::NUMERIC); $excel->writeRow(4, ['One', 'Excel']); $excel->writeCell(4, 2, 'Test'); $excel->output();
读取器
(版本 0.6+)
$excel = OneExcelReaderFactory::create() ->fromFile('excel.xlsx') // ->withDriver(Driver::SPOUT) ->make(); foreach ($excel->row() as $row) { // } $excel->close();
文档
已知问题
- Spout 读取器驱动将空行输出为单列(上游问题?)
- Spout 不支持随机读写行(上游限制,不会修复)
- Spout 不支持公式(上游限制,不会修复)
- fputcsv 驱动忽略所有 ColumnType::*(文件类型限制,不会修复)