这里是我的代码:asp.net导出到Excel UTF-8
var model = _db.FacebookInfo.OrderByDescending(f => f.Followers).ToList();
var grid = new System.Web.UI.WebControls.GridView();
grid.DataSource = (from u in model
select new
{
fullname = System.Text.RegularExpressions.Regex.Replace(u.FullName, "<span .*?>(.*?)", ""),
followers = u.Followers,
friends = u.Friends,
url = u.FbLink
}).ToList();
grid.DataBind();
Response.ClearContent();
Response.AddHeader("content-disposition", "attachment; filename=Nana bregvadze Friends.xls");
Response.ContentType = "application/excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
grid.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
它只是创建一个Excel文件,但我有一个统一的问题,无法读取格鲁吉亚charachters。看图片:
也许这是一个重复的,但没有办法为我工作。
Excel和UTF8没有问题。您的代码完全不会生成Excel - 它会创建一个HTML表格,其中包含一个虚假标题和Excel *作为HTML导入的文件扩展名。使用像EPPlus这样的库来创建* real * XLSX文件。它实际上更容易,像'ws.Cells [“A1”]这样的调用。LoadFromCollection(model)将从任何IEnumerable集合生成一张表 –
只是没有办法从html读取utf-8 charachtares? –
当然,只要您设置正确的HTTP标头即可。但是,当正确的解决方案更简单时,为什么坚持使用丑陋的黑客?在Excel中使用默认设置导入HTML文件时发现* next *问题会发生什么?如果您和客户端之间的任何防火墙或代理检测到发送HTML文件而不是二进制'xls'文件并阻止它,会发生什么?如果客户想要格式化会怎么样?孩子玩真正的Excel文件,真的很难用HTML –