laacz/xls-parser

该包已被废弃,不再维护。没有建议的替代包。

解析XLS文件的库

0.3 2019-04-17 10:18 UTC

This package is auto-updated.

Last update: 2023-07-28 01:21:47 UTC


README

XLSParser是一个快速PHP库,旨在解析微软Excel旧版二进制XLS格式。由于所有PHP实现都太慢,因此编写了它。代码基本上是Python优秀xlrd包的直接移植。该库非常早期,我多年前就创建了它。

反馈

接受问题和拉取请求。

需求

  • PHP 5.4.0或更高版本。
  • 多字节字符串扩展 (mbstring),用于处理较新Excel文件中使用的UTF-16LE编码。
  • 由于PHP的unpack/pack,系统为小端。如果您不是在Sparc上,应该没问题。

安装

通过命令行:composer require laacz/xls-parser

测试

使用composer install --dev安装依赖项,然后使用vendor/bin/phpunit运行测试。

用法

简单至上。提供文件名,它就会被加载或解析。

$book = new laacz\XLSParser\Book(file_get_contents('workbook.xls'));

访问工作表

可以通过它们的数字索引或名称访问工作表。由于Sheet对象实现了ArrayAccessIteratorAggregate,您也可以这样做。

$sheet = $book[0];
$sheet = $book['Page1'];
$sheet = $book['Vājprāts'];

访问单元格

单元格也可以像工作表一样访问。索引从零开始。

$row = $sheet[0];
$cell = $sheet[$sheet->nrows - 1][1];

要获取单元格的值,将其转换为字符串(或在其上下文中使用它)或获取value属性

$val1 = $cell->value;
$val2 = (string)$cell;

或者,如果您希望...

$val1 = $book[0][0][0]->value;

格式化

到目前为止,格式可以以原始方式访问。简而言之,工作表包含映射数组rich_text_runlist_map[][],它包含具有两个元素的数组 - 位置和字体引用。第一个是应用样式的起始位置,第二个是指向书的font_list[]的数字,它本身包含格式描述。

Excel日期

库会尽力解析单元格中找到的日期。它以公共日期格式返回字符串:'yyyy-mm-dd hh:mi:ss'。例如:2014-12-31 12:59:59。

愿望清单

  • 在此库的上下文中不存在内存效率。
  • 性能可能会更好。
  • 抽象格式化。
  • 添加用于常见任务的辅助方法 - 返回列、范围等。