JavaScriptを有効にしてください

PhpSpreadsheet を少しでも軽くする方法

 ·  ☕ 1 分で読めます

PhpSpreadsheet を少しでも軽くする方法

PHPExcel を扱える PhpSpreadsheet がとにかく重く、メモリを使うので少しでも軽くする方法メモ。

サンプル

書き込み、追記でないのであれば読み取りモードにすることで早くなります。
また最後にメモリを解放することでメモリの圧迫にも対応

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
use PhpOffice\PhpSpreadsheet\IOFactory;

class Excel{
    public function load($filePath, $sheetName){
        $reader = IOFactory::createReader('Xlsx');
        // セルのデータだけ読み取る
        $reader->setReadDataOnly(true);
        // 特定のシートだけ読み取る
        $reader->setLoadSheetsOnly($sheetName);
        $spreadsheet = $reader->load($filePath);

        // TODO 処理

        // ワークシートを閉じてメモリを解放
        $spreadsheet->disconnectWorksheets();
        $spreadsheet->garbageCollect();
    }
}

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer