PHPExcelが5000行以上を許可しない理由を教えてください。 私は自分のプロジェクトでレポート生成のためにオープンソースのPHPExcelを使用しています.Mysql-DBから5000行以上のデータを書き込むことはできませんでした。私の結果セットは、クエリが実行されたとき7230レコードを取得します。私はそれをどのように修正すればよい。..あなたのコードやクラスのコードを持たずにPHPExcelで5000行を超える書き込みが許可されない理由
答えて
ほぼ確実にこれはタイムアウトやメモリの問題です。ワークシートサイズのPHPExcelの唯一の制限は65,536行と256(IV)列です(Excel5 Writer使用時)。または1,048,576行と16,384(XFD)列(Excel2007 Writerを使用している場合)。
任意のPHPExcelの例外のトラップに/しようとcatchブロックを使用して...あなたのエラーログが常に有効になっていることを確認してください。また、メモリとパフォーマンスに関するPHPExcelサイトディスカッションスレッドを読んでください。
が非常に困難である私はあなたがXLSファイルに複数の5kの行を書き、またはワークシートの内側にすることはできません意味するか...と考えていますか?それ以外の場合は、最初のシートに5K行、2番目に5K行(DBが大きくなると、各シートは5K行)という醜い回避策があります。 私はXLSに5k行の制限があるとは思わないので、あなたのスクリプトに何か間違っているか間違って設定されているはずです。それは常に5k行を印刷しますか?タイムアウトが原因である可能性がありますか? (スクリプトまたは接続の)
この種の問題は、おそらくサーバのメモリの問題以上のものです。あなたはどんな種類のサーバーを所有していますか?大きなデータファイルを処理するのに十分なメモリとリソースがあると確信していますか?どちらの方法でも指示できない場合は、一度に数千のレコードを読み取り、処理してから次のチャンクに移動するのが最善の方法です。私は大規模なデータファイルを管理可能な部分(ファイル)に分割し、その後、それぞれの部分を処理して私の望む結果を得ることができます。すべての部分が処理されたら、それらをマージして新しい大きなデータファイルを作成することができます。
私は同じ問題を抱えていました。あなたは十分な時間とメモリの制限を割り当てる必要があります。私はここ3別のサーバー上で私の解決策をテストしている
は結果である:
ファイルの読み込みについて5000レコード(12列)
:
9時48分22秒のピークメモリ使用量:1.25メガバイトを
読み取りデータ:
午前9時48分31秒ピーク時のメモリ使用量:アレイに索引付けデータの後に54.5メガバイト
:
午前9時48分35秒のピークメモリ使用量:68.5メガバイト
レコード:4504
私はそれが370に上がったインデックスを作成した後、22.000レコードを読み取るためにメモリと時間を増加させました。00メガバイト
ここでは、あなたのプログラム/関数内でPHPExcelを呼び出す溶液(他のすべてのコードシーケンスで正しいことを与えられている) です:すべてのオブジェクトは準備ができているように
ini_set("max_execution_time", 'time_limit'); //see manual
はここにすべての初期化を実行します。その後、プログラムの内部構造にファイルとインデックスデータを読み込むためのメモリを割り当てる: - エラーを起こしやすい
ini_set('memory_limit', '???'); //your memory limit as string
$excel = $excelReader->load($filePath);
"Memory usage: " . (memory_get_peak_usage(true)/1024/1024) . " MB"
//do the rest of the structure!
良いアイデアは、あなたが400メガバイトに実行されませんので、データのいくつかの種類によって、このすべてを管理していることです!
ini_set( 'memory_limit'、 '-1');単独でこれを修正する傾向があります – maxhud
ほぼ確実にこれはタイムアウトまたはメモリの問題です。ワークシートサイズのPHPExcelの唯一の制限は65,536行と256(IV)列です(Excel5 Writer使用時)。または1,048,576行と16,384(XFD)列(Excel2007 Writerを使用している場合)。
あなたはそれは、レコードに65536のを超える行を記述することができ、このラインに
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
として
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
を変更することができます。
- 1. Amazon Ec2 FTP書き込み許可
- 2. Flex swfエンドユーザの許可があればローカルファイルに書き込み
- 3. アプリケーション許可された最大イベント数を超えるイベントログ
- 4. プログラムがスプラッシュスクリーンを超えてシミュレータに読み込まれない
- 5. メインバンドルディレクトリに書き込みます。許可されていますか?
- 6. PHP symlink():書き込み可能なフォルダで許可が拒否されました
- 7. フォルダのAndroidの読み取り/書き込みの許可
- 8. PHPExcel - チャンクで書き込み/追加する
- 9. java.lang.UnsupportedOperationException: '空ではないCassandraテーブルへの書き込みは許可されていません
- 10. FileSystemWatcherがファイルシステムのアクセス許可を超えています
- 11. Tastypie - 許可された書き込み権限を許可している間に、認証されていないユーザーに対して読み取り専用の許可を許可する
- 12. 再帰の深さが制限を超えている理由を理解できません
- 13. JSONがAngular 2で読み込まれない理由
- 14. PHP書き込みファイルとアクセス許可を設定
- 15. ChromeでAjaxの許可ドメインが許可されていない
- 16. PHPExcelエクスポート「読み込み不可能なコンテンツ」Excelファイルin yii2
- 17. ERROR 1(HY000):ファイルに作成/書き込みできません(Errcode:13 - 許可が拒否されました)
- 18. 文書タイプで要素の問題が許可されない
- 19. 実行可能ファイルが置かれているフォルダへの書き込み
- 20. インストール時にローカルサービスへのディレクトリへの書き込み許可
- 21. cakephpのtmpが書き込みされていないこと
- 22. カスタムジェネリックタイプまたはインターフェイスを許可しない理由WinRTの理由
- 23. フラットバッテリIOS7の後にNSUserDefaultsが読み込まれない理由
- 24. 書き込みロックされたUTF8ファイルのストリーミングを許可するDCOM公開オブジェクトがありますか?
- 25. これが私にエラーを与える理由を理解できない
- 26. 「許可された時間を超えてアクティブなアサーションがクラッシュする」バグが見つかりません
- 27. 書き込み中にExcelに値が入力されない
- 28. Facebookの書き込みダイアログにメッセージが表示されない
- 29. XMLHttpRequestが読み込めません。アクセス制御許可元からOriginが許可されていません。
- 30. CoreBlueTooth:データが書き込み可能な特性に書き込まれてもエラーが発生する
正確に5000行を取得できますか?その場合、PHPExcelには制限があるかもしれませんが、CodePlexのサポートフォーラムで質問するほうがよいでしょう。PHPExcelのサポートがかなり良いとわかっています。そうでない場合は、おそらくあなたのサーバーのメモリ/タイムアウトの問題です。 – user183037