5

.xls ファイルでテーブルをコンピューターに抽出する次のコードがあります。

// I have a string which contains HTML table codes, named as excelTable

HttpResponse response = HttpContext.Current.Response;
response.Clear();
response.AddHeader("Content-Disposition", String.Format("Attachment;Filename=file.xls", ));
response.Buffer = true;
response.ContentEncoding = System.Text.Encoding.Default;
response.ContentType = "application/vnd.ms-excel";
response.Write(excelTable);
response.End();

そして、これは実際の .xls ファイルではないことがわかりました。メモ帳で開くと、標準の html テーブル コードが表示されます。

今では、定義するContentTypeだけでは不十分であることを理解しています。純粋な .xls または .xlsx ファイルを生成するには、他に何ができますか? それとも、OpenXML、Interop などの Excel ライブラリを使用する必要がありますか?

4

1 に答える 1

4

実際のXLS/XLSX データ、つまりライブラリ ( EEPlus など) または他の適切なソースで生成されたデータを返送する必要があります。

この一般的なハック/アプローチは、Excel が "HTML の読み方を知っている" ため機能します。HTML を実際に XSL/XLSX に変換するわけではありませんが、Excel で読み込んだ新しいスプレッドシートとして保存することはできます

コンテンツ タイプを変更してもデータには影響せず、代わりにこのアプローチが機能しなくなります。コンテンツ タイプは、データを開く/読み取るために使用されるプログラム (つまり Excel) を関連付けるために使用されます。

はい:実際のXLS/XLSX ドキュメントを生成するには、ライブラリを使用します。

于 2013-02-28T09:11:17.840 に答える