0

システムからのデータを含むExcelファイルを生成するアプリケーションに取り組んでいます。Excelファイルはデスクトップで正常に生成およびダウンロードされますが、Androidタブレットにダウンロードしようとすると開きません。ダウンロードは正常ですが、開くと、有効なMSExcelファイルではないというメッセージが表示されます。

ダウンロードしようとしているドキュメントは、ページの上部に次のヘッダーが付いたphpスクリプトから生成されています。

header('Pragma: public');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Pragma: no-cache');
header('Expires: 0');
header('Content-Transfer-Encoding: none');
header('Content-Type: application/vnd.ms-excel;');
header('Content-type: application/x-msexcel');
header('Content-Disposition: attachment; filename="Report.xls"');

// code below

ヘッダーのさまざまなバリエーションを試しましたが、何も機能しません。ダウンロードは、実行されるアイコンをクリックすることから始まります。

top.document.location = 'script_that_generates_excel_file.php';

データがそこにあるはずなので、ファイルのサイズがタブレットで正しく検出されていることを追加する必要があります。何が起こっているのかについて何かアイデアはありますか?タブレットでファイルを開けないのはなぜですか?

タブレットでファイルを開こうとしたときに発生するエラー:

Polaris Office:

ドキュメントを開いているときにエラーが発生しました

移動するシート:

このファイルは有効なMSExcel97-2011ファイルではないため、開くことができません

4

1 に答える 1

3

デスクトップで Excel スプレッドシートを作成してタブレットにコピーすると、タブレットで正常に開きました。それは朗報です。また、タブレットで生成したファイルが開かず、デスクトップにコピーしたところ、問題なく開きました。それは明らかに生成プロセスでなければなりません。何か案は?

HTML コードは技術的には有効な XLS ではありません。Excel は親切にもわずかな違いを見落とし、HTML ファイルをインポートするように指示したかのようにデータをインポートします。Microsoft 以外の他のビューアはそれほど寛容ではなく、ファイルが実際の XLS (または XSLX または新しい形式の名前が何であれ) であることを主張していると思います。

そうであれば、ドキュメントをタブレット上で動作させたい場合は、PHPExcelなどのツールを使用して実際の実際の XLS を生成する必要があるかもしれません。

于 2013-03-14T19:25:59.090 に答える