繁体   English   中英

将html表导出为ex​​cel文件编码

[英]export html table to excel file encoding

我有任务编写代码导出带有标头的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文件中没有显示相关性。

我可以做些什么想法吗?

感谢帮助

将您的代码更改为以下内容:

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扩展警告从Web站点打开Excel工作簿 ,但遗憾的是,无法解决此问题。

从帖子:

警报提示是“按设计”,但是取消操作和IE尝试再次打开文件的交互是未来修复的调查中的已知问题。

我已经添加:

    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是一个错误,文件的格式与扩展名不同。 我可以摆脱那个吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM