使用 PHPExcel 阅读 Excel 工作表不会给出预期的结果


Reading Excel worksheet using PHPExcel is not giving the expected results

我似乎在使用 PHPExcel 从 Excel 2007 工作簿中读取数据时遇到了 2 个问题:

  1. 未找到文档属性;
  2. 单元格中的值未格式化。

样品.xlsx

+--------+-----------+-------------+
| Office | Hr no PFU | Hr $ no PFU |
+--------+-----------+-------------+
| AA01   | 18.50     | $ 13.14     |
| BW23   | 1020.03   | $ 123.23    |
+--------+-----------+-------------+
  • Hr no PFU 以下单元格中的值已使用 2 位小数的会计进行格式化。
  • Hr $ no PFU 以下单元格中的值也已使用 2 位小数的会计进行格式化,符号为 $。
  • 工作簿还具有"作者"、"主题"和"标题"的文档属性。

调整示例WorkBookReader02.php(文档中提供的示例之一):

$inputFileType = 'Excel2007';
$inputFileName = './sampleData/sample.xlsx';
/**  Create a new Reader of the type defined in $inputFileType  **/
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
/**  Load $inputFileName to a PHPExcel Object  **/
$objPHPExcel = $objReader->load($inputFileName);
/**  Read an array list of any custom properties for this document  **/
$customPropertyList = $objPHPExcel->getProperties()->getCustomProperties();
foreach($customPropertyList as $customPropertyName) {
    echo $customPropertyName,'<br />';
}
/**  Read cell values **/
$sheetData = $objPHPExcel->getActiveSheet()->toArray(null, true, true, true);
var_dump($sheetData);

(顺便说一句,使用文档中的文件的原始脚本输出自定义属性列表,没有任何值。

现在,我只遇到Excel 2007工作簿的问题。所以这让我怀疑我是否错过了其中一个要求,但我不这么认为:

  • PHP 版本 5.5
  • 默认情况下包含php_zip和php_xml,不是吗?
  • php_gd2已启用

有没有办法检查是否缺少某些东西?

安装和启用扩展是两回事。检查是否安装了所有 PHPEXcel 依赖项然后检查它们的配置文件或 php.ini以查看它们是否确实已启用。

从 PHPExcel 文档中可以清楚地看出它确实支持 Excel2007,并且它也适用于您的开发环境,对吧?好吧,检查依赖项,看看那里出了什么问题。

系统日志中是否存在一些错误?也许PHPExcel已经在抱怨这个"幕后"?

此外,您可能需要考虑使用类似(或确切地说)Vagrant之类的东西进行环境同步 - 这样您将始终确保您的环境在开发机器和服务器上是相同的。