0

我正在尝试将分离的 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);
4

0 回答 0