
データ出力先にEXCELを使用したく、PhpSpreadsheetなるものを使おうかどうか検討しているのですが、検証したところだいぶ時間がかかり、悩んでいます。
データは3000件程度、画面出力であれば数秒で表示されます。
従って、自分としては下記ソースの"fromArray"が遅いと思っているのですが、
PhpSpreadsheetを使ったことのある方で効率のいい書き方、コツなどありましたら、ご教授いただきたく思います。
PHP
1// ポイントだけ抜粋 2use PhpOffice\PhpSpreadsheet\Settings; 3use PhpOffice\PhpSpreadsheet\Spreadsheet; 4use PhpOffice\PhpSpreadsheet\Writer\Xlsx as XlsxWriter; 5 6 7 set_time_limit(600); 8 9 $spreadsheet = new Spreadsheet(); 10 $sheet = $spreadsheet->getActiveSheet(); 11 12 $this->load->library('services/Site_service'); 13 $data = $this->site_service->excel(); // $dataには3000件程度が入っている。 14 15 // var_dump($data); die; 16 // ここまでは早い。数秒で表示される。 17 18 // 下記が重いと思っている。 19 $sheet->fromArray( 20 $data, 21 NULL, 22 'A2' 23 ); 24 25 $writer = new XlsxWriter($spreadsheet); 26 27 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 28 header('Content-Disposition: attachment;filename="myfile.xlsx"'); 29 header('Cache-Control: max-age=0'); 30 31 // Excel出力に1分以上かかる。 32
よろしくお願いいたします。
追記)
単純描画だと10秒程度なのに、このライブラリを使うと1分以上超えてきます。
(上記ソースの$sheet->fromArrayの前後)
回答1件
あなたの回答
tips
プレビュー