使用PHPExcel读取Excel工作表并未给出预期的结果

时间:2013-09-07 04:05:29

标签: php phpexcel

我似乎有两个问题,使用PHPExcel从Excel 2007工作簿中读取数据:

  1. 找不到任何文档属性;
  2. 来自单元格的值未格式化。
  3. sample.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);
    

    (BTW原始脚本使用文档中的文件输出自定义属性列表,但不包含任何值。)

    现在,我只对Excel 2007工作簿有这个问题。所以这让我想知道我是否错过了requirements中的一个,但我不相信:

    • PHP版本5.5
    • 默认包含php_zip和php_xml,没有?
    • php_gd2已启用

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

1 个答案:

答案 0 :(得分:0)

正在安装和启用的扩展程序是两个不同的东西。 检查是否已安装所有PHPEXcel依赖项 然后检查他们的配置文件或php.ini以查看它们是否确实已启用。

PHPExcel docs显然它确实支持Excel2007,它也适用于你的开发环境,对吧?检查依赖关系,看看那里有什么问题。

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

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