PHPExcel を使用していて、エクスポートされたファイルで「読み取れないコンテンツ」エラーが報告されたのは誰ですか?

WBOY
リリース: 2016-06-23 13:56:14
オリジナル
1331 人が閲覧しました

タイトルにあるように、エクスポートされたセルの数が 150 程度と比較的少ない場合は、問題はなく、すべてが正常になります。
しかし、エクスポートされたセルの数が 150 を超えると、エクスポートされた Excel ファイルを開くことができなくなり、開くときに「読み取れないコンテンツが見つかりました」というエラーが報告されます

これには何か制限がありますか? または、この問題を解決するにはどうすればよいですか?


ディスカッションへの返信 (解決策)

Excel にはセルの数に制限がありますが、わずか 150 個ほど小さくなることはありません
作成したプログラムが適切な場所に表示されるかどうかを確認する必要があります。実行するとエラー

もちろん、使用可能なメモリが少なすぎる可能性があります
使用可能なメモリを増やさずに、この矛盾を軽減するためにファイル キャッシュを使用することもできます

プログラムには問題ありません。確認します。
非常に簡単なテスト方法です。まず、すべてのデータの内容を同じ値に設定し、次に 1 行だけをエクスポートします。問題ありません。2 行をエクスポートします。 。 。エクスポートされた行の数が十分に大きい場合、エラーが報告されます

プログラムの問題であれば、問題のトラブルシューティングを支援できる可能性がまだあります
それ以外の場合は、自分で解決する必要があります

ほとんどの場合、プログラムに問題がある可能性があります
1 :lz は stackoverflow または phpexcel 公式 Web サイトにアクセスして投稿できます
2:lz はコードを投稿して Buzhu にヒントを提供できます

プログラムに問題はありません。それはphp

の設定と関係があります

最終保存を確認するのを手伝ってください。ファイルのコードに問題はありますか:
header('Content-Type: application/vnd.ms-excel; charset ="UTF-8"');
header('Content-Disposition: 添付ファイル; filename='.urlencode($ fileName));
header("Content-Transfer-Encoding: binary");コントロール:must-revalidate、post-check=0、pre-check=0");
$objWriter = PHPExcel_IOFactory: :createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://出力');

テストを手伝ってくれる php+phpexcel 環境を持っている人はいますか? テストコードは次のとおりです:

require_once 'PHPExcel.php'
require_once 'PHPExcel/IOFactory.php'

$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objActSheet = $objPHP Excel->getActiveSheet (); ) {
$objActSheet->setCellValueByColumnAndRow(0,$i+1,'ok');
$fileName = "ファイル名.xls"
header('Content-Type: application/vnd.ms-excel) ; charset="UTF-8"');
header('Content-Disposition: 添付ファイル名='.urlencode($fileName));
header("Content-Transfer-Encoding: binary");キャッシュ制御:must-revalidate、post-check=0、pre-check=0");
$objWriter = PHPExcel_IOFactory::createWriter($ objPHPExcel, 'Excel5');
$objWriter->save('php: //output');
exit;
?>
行数を 216 に変更すると、ダウンロードされた Excel ファイルは 215 であれば問題ありません

i=0;$i<1215;$i++) {
$objActSheet->setCellValueByColumnAndRow(0,$i+1,'ok');

php の使用可能なメモリを増やすには、ini_set を使用しますか?

100,000 個以上のデータをエクスポートするのに問題はありませんでした

ダウンロードした PHPExcel に問題があることが判明し、再度公式 Web サイトにアクセスしてバージョン 1.7.8 を上書きしました。ローカルエリアは大丈夫​​でした。笑、みんなありがとう、サンフェン

はこんな感じです。


このファイルをダウンロードする代わりにサーバーに直接アクセスして開くと、すべてが正常であることがわかります。

この問題はダウンロードしたファイルでのみ発生します。

したがって、本当の問題はphpexcelのコードではなく、phpのファイルダウンロード部分を実装するために書いたコードです。


ここでの問題は一般に、ダウンロード部分を実装するコードの最後に return true; がないことが原因で発生します。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート