Excel文件完成下载后不能打开?

通过使用休闲代码,我已经将数据表导出为ex​​cel。

Response.ClearContent(); Response.Write(@"<!DOCTYPE HTML PUBLIC ""-//W3C//DTD HTML 4.0 Transitional//EN"">"); Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.Charset = "utf-8"; string tab = string.Empty; Response.Write("<font style='font-size:11.0pt; font-family:Calibri;'>"); Response.Write("<BR><BR><BR>"); Response.Write("<Table border='1' bgColor='#ffffff' borderColor='#000000' cellSpacing='0' cellPadding='0' style='font-size:11.0pt; font-family:Calibri; background:white;'> <TR>"); foreach (DataColumn datacol in dt.Columns) { Response.Write("<Td style = "+"\"width:120px;\""+">"); Response.Write("<B>"); Response.Write(tab + datacol.ColumnName); Response.Write("</B>"); Response.Write("</Td>"); } Response.Write("</TR>"); foreach (DataRow dr in dt.Rows) { Response.Write("<TR>"); for (int j = 0; j < dt.Columns.Count; j++) { Response.Write("<Td>"); Response.Write(tab + Convert.ToString(dr[j])); Response.Write("</Td>"); } Response.Write("</TR>"); } HttpContext.Current.Response.Write("</Table>"); Response.Write("</font>"); Response.Flush(); Response.End(); 

当我试图打开下载的Excel文件,它显示以下消息

在这里输入图像说明

是我的代码中所需的任何更改。 你能帮忙吗?

谢谢,普那

问题与文件格式有关,所以我可以findVBA中的解决scheme(只是明确写出输出格式)

 response.headers['Content-Disposition'] = 'attachment; filename=text1.xlsx' 

在您的代码中,您必须更改以下行,并明确指出输出格式.xlsx:

 Response.AddHeader("content-disposition", attachment); 

问题与文件格式有关。 尝试下面的代码,它的作品

 Response.AddHeader("content-disposition", "attachment; filename=EmpDetails.xls"); 

代替

 Response.AddHeader("content-disposition", attachment);