我有责任编写代码来导出带有标题的html表格excel。
我想出的是像这样的serverSide代码:
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=myexcel.xls");
Response.ContentType = "application/ms-excel";
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw);
tbPanel.RenderControl(hw);
Response.Write(sw.ToString());
Response.End();
它工作得很好,但有一些utf-8字符(俄语)在excel文件中没有显示相关内容。
我可以做些什么想法吗?
感谢您的帮助
答案 0 :(得分:6)
将您的代码更改为以下内容:
Response.Clear();
Response.AddHeader("content-disposition","attachment;filename=myexcel.xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.Unicode;
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(sw);
FormView1.RenderControl(hw);
Response.Write(sw.ToString());
Response.End();
修改强>
当我发布我的答案时,我看到你已经找到了同样的解决方案。您在此处看到的错误消息如下所示:Excel 2007 Extension Warning On Opening Excel Workbook from a Web Site,遗憾的是,无法解决此问题。
来自帖子:
警报提示是“按设计”,但是取消的交互 动作和IE尝试再次打开文件是一个已知问题 正在调查未来的修复。
答案 1 :(得分:0)
我添加了:
Response.Clear();
Response.AddHeader("content-disposition","attachment;filename=Test.xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.Unicode;
Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble());
现在它工作正常除了打开excel文件时出现警告thjere是一个错误,文件的格式与扩展名不同。我可以摆脱它吗?