phpexcel ファイルはオープンソースの PHP テーブル操作プラグインです。Excel データのインポートとエクスポートを使用するほとんどの人がこのプラグインを選択しますが、使用中に問題が発生することもあります。分析と調査を見てみましょう。
PHPExcel は、Microsoft Excel をインポート、エクスポート、操作するための PHP の最も強力なオープンソース プロジェクトです。しかし、そのシステムは複雑で、制御が難しい場合もあります。
PHPExcel を使用して Excel テーブルをエクスポートする方法はインターネット上にたくさんあるため、この記事では詳しく説明しません。しかし、使用中に不可解な問題が発生しました。PHPExcel を使用して Excel ファイルを自動的にエクスポートすると、正常にエクスポートして開くことができる場合がありますが、生成された Excel ファイルが開くことができない場合があります。 。 コンテンツ"。
テキスト エディターを使用して、生成された Excel ファイルを開き、「致命的なエラー: PHPExcel/Calculation/FormulaParser.php の 431 行目で非オブジェクトのメンバー関数 setValue() を呼び出します」というプロンプトの行を見つけます。
注意深く慎重に検査した結果、セルに書き込まれたテキスト値の中には、「====China Youth Daily...」など、等号で始まる値があることが判明しました。 , PHPExcelはこれを書いていましたが、セルに入力すると数式であると判断されるので、対応する値を計算するために数式パーサーが呼び出されるのですが、正しく計算ができません(そもそも数式ではないので),そのため、生成された Excel ファイルを開くことができません。
解決策はとても簡単です,
Excelのセルにテキスト値を書き込む前に、等号「=」をフィルタリングするだけです。
以下は 2 つのエラーの解決策です:
(1)致命的エラー:最大実行時間30秒超過のエラー解決方法
php.ini ファイルを変更する必要があります。Ubuntu 9.04 Server を使用しているサーバーの場合、php.ini ファイルは /etc/php5/apache2/ にあります。Freebsd の場合は、php.ini は / にあります。 usr/local/lib/ドキュメント。 sudo 権限を使用して次のステートメントを編集します:
次のステートメントを置き換えます:
最大実行時間 = 30
に変更されました:
最大実行時間 = 300
つまり、PHP スクリプトの最大実行時間が 30 秒から 300 秒に延長されます。
次に、Apache サーバーを再起動します。Ubuntu サーバーサーバーの場合は、次のコマンドを使用できます。
sudo /etc/init.d/apache2 再起動
php.ini ファイルも変更する必要があります:
メモリ制限 = 16M
に変更されました:
メモリ制限 = 512M
Apache サーバーを再起動する必要もあります。
注意すべき点は次のとおりです:
(1) 上記改変には、サーバーに過度の負荷がかかる等のリスクが伴う場合があります。したがって、PHPExcel またはその他の PHP プログラムのために、より大きなメモリ領域を開き、実行時間を長くする必要があるかどうかを再確認してください。
(2) php.ini を変更した後、新しい設定は Apache を再起動した後にのみ有効になります。
(3) ご自身のサーバーの状況に合わせてphp.iniの設定を調整してください。