[PHP-users 30315] Re: Spreadsheet WriteExcelの最大行数

TAKAGI Masahiro matakagi @ osk2.3web.ne.jp
2006年 9月 14日 (木) 10:03:47 JST


高木です。
# 直接の解決策ではありません。ごめんなさい。

At Tue, 12 Sep 2006 23:15:45 +0900,
兵頭 wrote:
> 
> PHP5.0.4+Apache2(Windows)の構成にて
> Spreadsheet WriteExcelライブラリを使用してエクセルファイルを出力しようとしているのですが、
「Spreadsheet WriteExcel」ってことは、もしかして PHP Classes 版を使用
していらっしゃるのでしょうか?

 http://www.phpclasses.org/browse/package/767.html

すでにこのパッケージの開発は PEAR に移行しているので、もしそうなのだっ
たら PEAR 版を使用することをお勧めします。

 http://pear.php.net/package/Spreadsheet_Excel_Writer

> 行数が1000行を超えたあたりからエクセルファイルが破損した状態で出力されてしまい困っています。
> エクセルファイルを開くと以下のメッセージが出力されてしまいます。
> ’ファイル名にアクセスできません。ファイルは読取専用であるか、または読取専用の場所にアクセスしようとしています。
> または、サーバ上に保存されているドキュメントから応答がありません。
> 
で、本題ですが、最新の PEAR 版を使用しても同じ問題が発生する可能性があ
ります。

 http://pear.php.net/bugs/6584

このページのコメントを読む限り、再現条件もはっきりしていないみたいです
ね。単純に「処理件数が○○を超えるとアウト」というわけでもなさそうです
(逆に「500 回のループだと大丈夫だけど、100 回のループだとだめ」という
 人もいらっしゃるようですし……)。

> 数百行の出力は正常にできます。
> 処理はデータベースのデータを配列に格納後、foreach関数にて順番にエクセルに書き込む処理をおこなっています。
> これってSpreadsheet WriteExcelの限界なのでしょうか?
> どなたかご教授願います。
> 
PEAR::Spreadsheet_Excel_Writer (あるいは PEAR::OLE) のバグである可能性
が高いですね。
# ちなみに、Spreadsheet_Excel_Writer は、未対応のバグが最も多いパッケー
# ジのひとつとしても知られています。
# http://pear.php.net/bugs/stats.php

-- 
高木 正弘 mailto:matakagi @ osk2.3web.ne.jp


PHP-users メーリングリストの案内