kherge / excel
dev-master / 1.x-dev
2017-01-05 02:11 UTC
Requires
- php: >=5.6
- ext-pdo_sqlite: *
- ext-zip: *
- kherge/file-manager: ^2.6
- kherge/xml: ^1.1
This package is auto-updated.
Last update: 2021-12-07 01:39:26 UTC
README
Excel
读取非常大的 Excel (.xlsx) 工作簿文件。
用法
<?php use KHerGe\Excel\Workbook; // Open a workbook file. $workbook = new Workbook('/path/to/workbook.xlsx'); // Show list of worksheets. print_r($workbook->listWorksheets()); // Get a specific worksheet by index. $worksheet = $workbook->getWorksheetByIndex(123); // Get a specific worksheet by name. $worksheet = $workbook->getWorksheetByName('Example'); // Iterate through all worksheets. foreach ($workbook->iterateWorksheets() as $index => $worksheet) { // ... } // Iterate through all rows in a worksheet. foreach ($worksheet->iterateRows() as $row => $values) { foreach ($values as $column => $value) { echo $column, $row, ' = ', $value, "\n"; // A1 = example } } // Get a specific cell. $value = $worksheet->getCell('C', 3); // Get a specific row. $row = $worksheet->getRow(123);
性能
指标待定。
我确定的是,这个库将读取任何大小的电子表格,同时使用少于 2 MiB 的 RAM。但是读取电子表格的过程非常占用 CPU。
要求
- PHP 5.6+
- pdo_sqlite
- zip
安装
composer require kherge/excel
文档
您直接使用的只有两个类。
工作簿
KHerGe\Excel\Workbook
类提供了对工作簿中工作表的访问。
您通过提供工作簿文件的路径作为其唯一参数来实例化此类。
<?php $workbook = new KHerGe\Excel\Workbook('/path/to/example.xlsx');
方法 | 签名 | 描述 |
---|---|---|
countWorksheets |
() -> int |
计算工作簿中的工作表数量。 |
hasWorksheetByIndex |
(int) -> bool |
检查给定索引的工作表是否存在于工作簿中。 |
hasWorksheetByName |
(str) -> bool |
检查给定名称的工作表是否存在于工作簿中。 |
getWorksheetByIndex |
(int) -> Worksheet |
通过索引检索工作表。 |
getWorksheetByName |
(str) -> Worksheet |
通过名称检索工作表。 |
iterateWorksheets |
() -> yield<int, Worksheet> |
为工作簿中的每个工作表生成。键是工作表的索引,值是 Worksheet 实例。 |
listWorksheets |
() -> map<int, str> |
获取工作簿中的工作表列表。键是工作表的索引,值是名称。 |
工作表
KHerGe\Excel\Worksheet
类提供了对工作簿中单个工作表内容的访问。此类的实例仅由 Workbook
类使用 getWorksheet*
之一返回。
方法 | 签名 | 描述 |
---|---|---|
countColumns |
() -> int |
计算工作表中的列数。 |
countRows |
() -> int |
计算工作表中的行数。 |
getCell |
(str, int) -> mixed |
获取特定单元格的值。第一个参数是列名,第二个是行号。 |
getIndex |
() -> int |
获取工作表的索引。 |
getName |
() -> str |
获取工作表的名称。 |
getRow |
(int) -> array<mixed> |
获取特定行的所有值。它的唯一参数是行号。 |
hasCell |
(str, int) -> bool |
检查特定单元格是否存在于工作表中。第一个参数是列名,第二个参数是行号。 |
hasColumn |
(str) -> bool |
检查列是否存在于工作表中。它的唯一参数是列名。 |
hasRow |
(int) -> bool |
检查行是否存在于工作表中。它的唯一参数是行号。 |
iterateColumn |
(str) -> yield<int, mixed> |
生成指定列中的每个值。它的唯一参数是列名。键是行号,值是单元格的值。 |
iterateRows |
() -> yield<int, map<str, mixed>> |
生成工作表中的每一行。键是行号,值是每列值的数组。 |
许可证
本库以MIT和Apache 2.0许可证发布。