分割されたxlsxファイルを1つにマージしようとしています。template.xlsx にいくつかのグラフがあり、いくつかのダミー データがあります。主な目標は、「data.xlsx」のデータを使用し、それを template.xlsx 上の「data」というシートに保存することです (シート「data」を参照する多くの数式とチャートがあります)。
256MまでのPHPメモリを持っているのにタフでも、メモリはまだ不足しています。
今までの私のコードは次のとおりです。
$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);