c#导出到excel文件收到错误信息
本文关键字:错误 信息 文件 excel | 更新日期: 2023-09-27 18:15:17
我使用Excel 2010我有下面的代码,我想导出到一个xls文件,但我得到以下消息:
您试图打开的文件"Report.xls"的格式与文件扩展名指定的格式不同。在打开文件之前,请确认该文件未损坏,并且是针对可信源的。您想现在打开文件吗?
注意,它仍然打开,但不确定为什么我收到消息
....
a.Fill(dtRecords);
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment;filename=Report.xls");
Response.ContentType = "application/ms-excel";
string tab = string.Empty;
foreach (DataColumn datacol in dtRecords.Columns)
{
Response.Write(tab + datacol.ColumnName);
tab = "'t";
}
Response.Write("'n");
foreach (DataRow dr in dtRecords.Rows)
{
tab = "";
for (int j = 0; j < dtRecords.Columns.Count; j++)
{
Response.Write(tab + Convert.ToString(dr[j]));
tab = "'t";
}
Response.Write("'n");
}
Response.End();
我相信.xls
文件的官方mime类型是application/vnd.ms-excel
(source)
您正在获得此消息,因为您正在尝试将字符分隔值(CSV)流导出为XLS文件。
CSV是文本格式,而XLS是复杂的二进制格式,比CSV具有更多的功能。
MS Excel报错,因为它首先尝试以XLS格式打开文件,但它发现该文件实际上不是XLS,所以它显示警告信息,但仍然足够聪明地发现该文件是CSV并相应地采取行动。
尝试用扩展名.csv
和内容类型text/csv
保存文件。