タイトルにあるように、エクスポートされたセルの数が 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://出力');
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');
100,000 個以上のデータをエクスポートするのに問題はありませんでした
ダウンロードした PHPExcel に問題があることが判明し、再度公式 Web サイトにアクセスしてバージョン 1.7.8 を上書きしました。ローカルエリアは大丈夫でした。笑、みんなありがとう、サンフェン
このファイルをダウンロードする代わりにサーバーに直接アクセスして開くと、すべてが正常であることがわかります。
したがって、本当の問題はphpexcelのコードではなく、phpのファイルダウンロード部分を実装するために書いたコードです。
ここでの問題は一般に、ダウンロード部分を実装するコードの最後に return true; がないことが原因で発生します。