我正在尝试将分离的 xlsx 文件合并为一个。我在 template.xlsx 上有一些图表和一些虚拟数据。主要目标是使用“data.xlsx”中的数据并将其存储在模板.xlsx 上的名为“data”的工作表中(其中有很多公式和图表引用工作表“data”)
就算我的php内存高达256M,内存还是不够用。
到目前为止,我的代码如下:
$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_to_sqlite3;
$cacheEnabled = \PHPExcel_Settings::setCacheStorageMethod($cacheMethod);
if (!$cacheEnabled) {
echo "### WARNING - Sqlite3 not enabled ###" . PHP_EOL;
}
$objReaderTo = \PHPExcel_IOFactory::createReader(
$this->_getXlsTypeByFilename($fileTo)
);
$objReaderFrom = \PHPExcel_IOFactory::createReader(
$this->_getXlsTypeByFilename($fileFrom)
);
$objReaderTo->setIncludeCharts(true);
$objReaderFrom->setReadDataOnly(true);
$objTo = $objReaderTo->load($fileTo);
echo '<h3>mundo</h3>';
$objFrom = $objReaderFrom->load($fileFrom);
echo '<h3>mundo</h3>';
$sheetIdx = $objTo->getIndex( $objTo->getSheetByName('Exports') );
$objTo->removeSheetByIndex($sheetIdx);
$objTo->addExternalSheet($objFrom->getSheetByName('Exports'));
$objDest = \PHPExcel_IOFactory::createWriter($objTo
, $this->_getXlsTypeByFilename($fileTo)
);
$objDest->setIncludeCharts(true);
$objDest->save($fileTo);