テーブルから値を編集するExcelファイル(約5000〜8000行& 32 cols)があります。私はこれを正常に実行しましたが、スクリプトの平均実行時間を短縮したいと考えています。
私はロードされたオブジェクトをセッションに保存し、毎回リロードする代わりにスクリプトが実行されるたびに存在するかどうかを確認しました。
if (!isset($_SESSION['col10Read']))
{
global $sheet;
$objPHPExcel = $objReader->load($inputFileName);
$_SESSION['col10Read'] = $objPHPExcel;
$sheet = $objPHPExcel->getActiveSheet();
}
else
{
global $sheet;
$sheet = $_SESSION['col10Read']->getActiveSheet();
}
が、私は(私のセッション変数が存在する)最初の時間の後に、コードを実行すると、私はこのエラーを取得する:
致命的なエラー:メッセージ「あなたの要求されたシートでキャッチされない例外「PHPExcel_Exception」インデックス:0は範囲外です。実際のシート枚数は0枚です。
私は一日差別化を図ってきました。無限にGoogleを検索しました。
オブジェクトをセッション内に入れても、何も高速化されません。 –
これは、$ _SESSION変数に入れる非常に大きなオブジェクトです。 PHPがセッションデータ用にtmpフォルダを使用している場合、ディスク容量が足りなくなる可能性があります。 –
@BenHillier私はこれらのすべての問題を考えたので、今は1つの列だけをロードしています。したがってオブジェクトのサイズは約40MBです。それでも大きすぎます。 –