PHPExcel setLoadSheetsOnly忽略模板中的其他工作表


PHPExcel setLoadSheetsOnly ignoring other sheets from template

我对PHPExcel有一个问题:为了在PHPExcel中使用大型模板XLSX文件,我尝试仅使用setLoadSheetsOnly,但XLSX输出文件仅包含在setLoadSheetsOnly中声明的工作表,其他所有工作表都丢失了。

我会尽量解释得更好。我有一个XLSX模板文件,比如说,有5个工作表:"alpha"、"beta"、"gamma"、"delta"、"epsilon"。如果我加载整个文件,脚本将耗尽内存,因此,由于我只需要在"beta"answers"epsilon"表上写,我使用了setLoadSheetsOnly:

    $inputFileName = '/srv/www/htdocs/exceltest/templates/template5.xlsx';
    $worksheets=array('beta','epsilon');
    $objReader->setLoadSheetsOnly($worksheets);
    $objPHPExcel = $objReader->load($inputFileName);
    // the above code is only explicative
    ...

结果(脚本创建的文件)是一个excel文件,其中只包含"beta"answers"epsilon"工作表,其他工作表显然都丢失了。那当然不是我想要的。

我是否遗漏了什么,是否有某种变通方法,或者我使用了错误的方法?

非常感谢。

setLoadSheetsOnly()的全部目的是只加载指定的工作表,而不加载任何其他工作表。这正是它所做的:没有"工作回合",因为它正在做它应该做的事情

如果您试图减少内存使用,请查看文档中描述的单元格缓存方法,并根据您使用的PHP版本、可用的模块、可用的内存以及模板所需的内存,找到其中哪种方法最适合您的情况。

相关文章: