これは私のコードですが、予期しない形式のエラーが発生します。MIME タイプに何か問題があるに違いありませんが、これはオリジナルの公式 MIME タイプであることがわかりました。
私は何が欠けていますか?この方法で作成したドキュメントを開こうとするたびに「破損」しているように見えますが、メッセージをクリックして離すとすべて正常に動作します。
メッセージ:開こうとしているファイル 'name.ext' は、ファイル拡張子で指定された形式とは異なります。ファイルを開く前に、ファイルが破損しておらず、信頼できるソースからのものであることを確認してください。今すぐファイルを開きますか?
ただし、ファイルが無効なためインポートできないため、この警告を取り除く必要があります。ファイルを 2003-2007 形式の .xls として保存すると、修正されたようです。しかし、これは実用的な解決策ではありません。
protected void ExportToExcel(string fileName)
{
var cmd = new SqlCommand(query);
var dt = GetData(cmd);
var writer = new StringWriter();
var gridview = new GridView();
gridview.AllowPaging = false;
gridview.DataSource = dt;
gridview.DataBind();
Response.Clear();
var hw = new HtmlTextWriter(writer);
gridview.RenderControl(hw);
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
// this.EnableViewState = false;
Response.Write(writer.ToString());
// Response.Flush();
Response.End();
}