尝试在excel中打开文件时,您尝试打开的文件格式与文件扩展名c#error指定的格式不同

时间:2016-10-05 13:46:24

标签: c# asp.net

尝试打开excel中的文件时,您尝试打开的文件格式与文件扩展名c#错误指定的格式不同。

这是我的代码:

private void Export2Excel(GridView GridView1, GridView GridView2)

{

Response.AddHeader("content-disposition",
"attachment;filename= " + filename + ".xls");
Response.Charset = "";
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; //"application/vnd.ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);

PrepareForExportExcel(GridView1, GridView2);


string style = @"<style> .textmode { mso-number-format:\@; } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());


Response.OutputStream.Flush();
Response.OutputStream.Close();

}
catch (Exception ex)
{
lblError.Text = ex.Message;
}

}

1 个答案:

答案 0 :(得分:2)

这是一个Excel&#34;问题&#34;而不是C#。 Excel 可以打开HTML文档,但如果基础格式与文件扩展名不同,它会发出警告。

解决问题的最佳方法是使用excel库生成一个真实的&#34; excel文档而不是HTML并使用正确的文件扩展名(XSLX用于二进制Excel文件,<body> <div id="playground"> <div id ="player"></div> </div> </body> 用于&#34; XML&#34; excel文件)