wilsonglasser / spout
PHP 库,用于以快速和可扩展的方式读取和写入电子表格文件(CSV、XLSX 和 ODS)
README
此版本
此分支是 Spout v3.0 的修改版本,具有添加合并单元格、注释、公式单元格、列尺寸和 XLSX 写入器的自动筛选功能。
关于
Spout 是一个 PHP 库,用于以快速和可扩展的方式读取和写入电子表格文件(CSV、XLSX 和 ODS)。与其他文件读取器或写入器不同,它能够在保持内存使用量非常低(低于 3MB)的同时处理非常大的文件。
文档
很抱歉,我目前无法为新方法创建文档。
我将仅列出一些小示例
合并单元格
$worksheet = $writer->getCurrentSheet(); $worksheet->mergeCells('A1:B1');
行高
$rowStyle = (new StyleBuilder()) ->setFontSize(10) ->setFontName('Arial') ->setRowHeight(50) ->build(); $writer->addRow(new Row([new Cell('Hello World')], $rowStyle));
列维度(宽度)
// Specific size $worksheet->addColumnDimension( new ColumnDimension('A', 50 ) ); // Autosize $worksheet->addColumnDimension(new ColumnDimension( 'A', -1, true ));
自动筛选
启用 Excel 自动筛选
$worksheet = $writer->getCurrentSheet(); $worksheet->setAutoFilter('A1:Z1');
公式值
添加了对显示公式计算值的支持(不会计算,您需要传递正确的值)
$Cell = new Cell('=A1', null); $Cell->setCalculatedValue('100.00');
数字格式
$originalValue = 100.0; $value = 'R$'.number_format($originalValue, 2,',','.'); $style = (new StyleBuilder()) ->setFontSize(10) ->setFontName('Arial') ->setNumberFormat(new NumberFormat('0 - "' . $value . '"')) ->build(); $Cell = new Cell($value, $style); // date $styleMonthYear = (new StyleBuilder()) ->setFontSize(10) ->setFontName('Arial') ->setNumberFormat(new NumberFormat('MM/YYYY')) ->build();
注释
$worksheet = $writer->getCurrentSheet(); $worksheet->addComment( new Comment('A1', 'My comment', 'Comment user, null for nothing') );
从单元格索引获取列索引
返回与基数为 26 的单元格索引相关联的基数 10 列索引。
Excel 使用 A 到 Z 的字母作为列索引,其中 A 是第 1 列,Z 是第 26 列,AA 是第 27 列。
映射是从 0 开始的,所以 0 映射到 A,B 映射到 1,Z 映射到 25,AA 映射到 26。
// echo 0 echo CellHelper::getColumnToIndexFromCellIndex('A1');
Spout 的完整文档可以在 http://opensource.box.com/spout/ 找到。
要求
- PHP 版本 5.6 或更高
- PHP 扩展
php_zip
已启用 - PHP 扩展
php_xmlreader
已启用
支持
我不会为这个分支提供全面的支持,这只是一个针对特定项目的分支。
版权和许可
版权 2017 Box, Inc. 保留所有权利。
根据 Apache 许可证 2.0 版(“许可证”);除非您根据许可证进行,否则不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明示或暗示的保证或条件。有关许可证的具体语言、权限和限制,请参阅许可证。