- 締切済み
PHPExcelは行の削除、追加のメモリに関して
現在、PHPにてExcelへ出力するプログラムを 作成しております。 1アイテムに3行を使用し、結合、背景色の設定などの指定が列単位 で設定されております。 現在は、アイテム数の上限が50件と決まっておりますので、 テンプレートに50件分の行とスタイルの指定をあらかじめ用意しておき、 値の入力後、アイテムの入力がないエリアを判定してから削除をしております。 ただ、アイテム数がないときに削除処理が多くなり、 出力までに時間が発生してしまうため、時間短縮のために 行の追加を行う方が出力時間が早いのかどうか気になりました。 行追加処理の場合、 ・3行追加 ・列単位で結合、スタイルの指定 ・値の入力 の流れになるかと思われますが、 アイテム数を30件程度で考えますと、 削除、追加どちらの方が出力までの時間が短くなると考えられますでしょうか。 目安でかまいませんので、教えていただけると助かります。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- nda23
- ベストアンサー率54% (777/1416)
処理時間だけで言うなら、XMLファイルにすべきです。 これは単純なテキストファイル出力なので、Excelを 起動するくらいの時間で全て終わります。 サンプルのExcelをXMLスプレッドシート形式で保存し、 これをエディタで開きます。どのようなタグが出力され ているか調べて、同じ内容のタグが出力されるように PHPでプログラムします。注意点は以下の通り。 (1)XMLは規定文字コードがUTF-8なので、これ以外の場合は ヘッダに文字コードを指定します。シフトJISなら以下の ように文字コードを指定します。 <?xml version="1.0" encoding="SHIFT_JIS"?> (2)Excelで開くことのみを前提とするなら、次の Workbookタグにある xmlsn="~"、xmlsn:x="~"、 xmlsn:ss="~"の指定以外は削除します。 (3)同じく、WorkbookタグからStyleタグまでの間にある 各種タグ、は出力しなくてもOKです。 (4)ウィンドウ枠の固定などの設定がないなら、WorkSheetの 終了タグの後方にあるWorkSheetOptionsも不要です。 ファイルサイズが大きいことが難点ですが、速度は保証 します。特にセル数が多いほど、その差は歴然です。 また、テキストファイル作成なので、Excelが無い環境でも 生成可能ですし、他のプログラム言語でも応用できます。