在导出excel时,在导出的字符换之前加meta标签,设置属性,可以有效的设置excel程序以何种编码方式打开,防止解析时出现乱码.
Response.Write("<meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>"+"要导出的html或者xml文本串");
private void ToExcel()
{
String contents = @"<html xmlns:v='urn:schemas-microsoft-com:vml' xmlns:o='urn:schemas-microsoft-com:office:office' xmlns:x='urn:schemas-microsoft-com:office:excel' xmlns='http://www.w3.org/TR/REC-html40'><head> <meta http- equiv='Content-Type' content='text/html; charset=UTF-8'></html>";
//输出的应用类型
Response.ContentType = "application/vnd.ms-excel";
//设定编码方式,若输出的excel有乱码,可优先从编码方面解决
Response.Charset = "gb2312";
Response.ContentEncoding = System.Text.Encoding.UTF8;
//关闭ViewState,此属性在Page中
EnableViewState = false; //filenames是自定义的文件名
Response.AppendHeader("Content-Disposition", "attachment;filename=hello.xls");//content是步骤1的html,注意是string类型
Response.Write(contents); Response.End();
}