【问题标题】:read all sheets in xls and xlsx file using PHPExcel使用 PHPExcel 读取 xls 和 xlsx 文件中的所有工作表
【发布时间】:2016-05-23 14:57:38
【问题描述】:

嗨,我正在开发一个使用 php 显示 excel 文件内容的项目,到目前为止,这是我正在处理的代码

$inputFileType = 'Excel5'; // Excel2007 for xlsx
$inputFileName = $opendoc;

$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
$objw = $objWriter;
$objw->save('php://output');

我的问题是如何显示其他工作表,因为只有一张工作表正在显示任何想法?提前非常感谢

【问题讨论】:

    标签: php phpexcel phpoffice


    【解决方案1】:

    尝试在创建阅读器之后加载文件之前添加以下行:

    $objReader->setLoadAllSheets();
    

    这样就变成了:

    $inputFileType = 'Excel5'; // Excel2007 for xlsx
    $inputFileName = $opendoc;
    
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objReader->setLoadAllSheets();
    $objPHPExcel = $objReader->load($inputFileName);
    
    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
    $objw = $objWriter;
    $objw->save('php://output');
    

    【讨论】:

    • 嗨!例如,我有 2 张纸,它所做的是两次加载了第 1 张。有什么想法吗?
    • 尝试另存为其他格式,看看它是否正确导出工作表。如果是这样,那么保存 HTML 实现中有一个错误(他们在文档中确实说它有其局限性)。如果它确实有效,并且在保存 HTML 时存在错误,也许您可​​以自己滚动,通过在循环中将每个工作表分别保存到 HTML。
    【解决方案2】:

    默认情况下,HTML 编写器仅显示一个工作表(当前活动工作表)。

    您可以在保存前调用 Writer 的 writeAllSheets() 方法来更改它。

    $objw = PHPExcel_IOFactory::createWriter($objPHPExcel, 'HTML');
    $objw->writeAllSheets();
    $objw->save('php://output');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 2017-09-29
      • 2011-11-27
      相关资源
      最近更新 更多