我似乎在使用 PHPExcel 从 Excel 2007 工作簿中读取数据时遇到了 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之类的东西进行环境同步 - 这样您将始终确保您的环境在开发机器和服务器上是相同的。