0

分割された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);
4

0 に答える 0