我是先用Gridview导出,然后再转换格式,部分代码如下 StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); GV.RenderControl(htw); File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF7); Excel.Application excelApp = new Excel.ApplicationClass(); Excel.Workbooks wbs = excelApp.Workbooks; Excel.Workbook wb = wbs.Open(path + "temp", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);//创建WorkBook wb.SaveAs(path, Excel.XlFileFormat.xlExcel7, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, System.Text.Encoding.UTF7, Type.Missing, Type.Missing);系统为英文的Windows 2003,Office也是2003英文版已在Regional and Language Options中选择了Chinese (PRC)GV导出的文件中文显示正确,转换格式后中文变为乱码
9 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
temp 这个文件应该是一个html 格式的问题,楼主需要检查一下这个文件中
<meta http-equiv="Content-Type" content="text/html; charset=UTF-7" />
charset 是不是 UTF-7
如果不是,改成UTF-7试试。
你
File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF7);
这句只是把文件本身的编码格式设置成了utf-7,但应没有改变html 文件中的编码格式。
因为你的文件本身编码格式没问题,
所以你打开这个文件时中文显示正常。但转换时会按html的编码格式来转换,
这就导致转换后的文件中文为乱码。
眼眸繁星
TA贡献1873条经验 获得超9个赞
把Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
改成Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-7");
SMILET
TA贡献1796条经验 获得超4个赞
File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF7); 改成 File.WriteAllText(path+"temp", sw,System.Text.Encoding.UTF8);
- 9 回答
- 0 关注
- 704 浏览
添加回答
举报
0/150
提交
取消