0

我似乎在使用 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 位小数记帐进行格式化,符号 $。
  • 该工作簿还具有作者、主题和标题的文档属性。

调整exampleWorkBookReader02.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 已启用

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

4

1 回答 1

0

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

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

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

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

于 2013-09-09T12:51:05.017 回答