Office 2007 打开 C# VS2005 导出的Excel时报错:单元格数据太大 Office 2003打开正常 的解决办法
经测试,有可能是这个问题:
导出Excel的代码:
private void ExportToExcel()
{
Response.Clear();
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
Response.AddHeader("content-disposition", "attachment;filename=Test.xls");
//Response.Charset = "UTF-8";//设置字符集
//curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置编码集
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//Response.ContentType = "application/vnd.xls";
Response.ContentType = "application/ms-excel";
//ms-excel
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
//写到Excel的数据不用分页
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());//向客户端写数据
Response.End();
GridView1.AllowSorting = true;
//恢复分页
}
{
Response.Clear();
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
Response.AddHeader("content-disposition", "attachment;filename=Test.xls");
//Response.Charset = "UTF-8";//设置字符集
//curContext.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置编码集
Response.Charset = "utf-8";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
//Response.ContentType = "application/vnd.xls";
Response.ContentType = "application/ms-excel";
//ms-excel
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
//写到Excel的数据不用分页
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());//向客户端写数据
Response.End();
GridView1.AllowSorting = true;
//恢复分页
}
如果将 Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
设置成 UTF7则会出现题目中的问题 导致打开是乱码,改成GB2312就正常。
////////////////////////////////
////////Sixi. Let it be.../////
//////////////////////////////