今天遇到了这个问题,记录下来,方便不知道的朋友以后用,当在生成Excel表格时直接将网页表格直接保存成excel文件后,用excel能打开表格中的数字自动用科学计数法表示了,比如table中的0.0在excel中显示为0。
解决方案如下。
protected void downloadButton_Click(object sender, EventArgs e) { BindPage(); Response.ClearContent(); string attachment = "attachment; filename=Payroll.xls"; Response.AddHeader("content-disposition", attachment); Response.ContentType = "application/ms-excel"; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); tabData.Border = 1; tabData.RenderControl(htw); string startHtml = "<html xmlns:o=\"urn:schemas-microsoft-com:office:office\" xmlns:x=\"urn:schemas-microsoft-com:office:excel\" xmlns=\"http://www.w3.org/TR/REC-html40\">"; string endHtml = "</html>"; Response.Write(startHtml + sw.NewLine + sw.ToString().Replace("<td align=\"right\" style=\"width:80px;\">","<td align=\"right\" style=\"width:80px;\" x:str>") + endHtml); Response.End(); }