日期:2014-05-17  浏览次数:20564 次

帮忙看下为什么导出的excel在2003中空白,在2007却正常

HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.ContentType = "application/ms-excel";
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment; filename="
             + HttpUtility.UrlEncode("结果统计表" + Common.PublicCommon.returnTime().ToString("yyyy-MM-dd"), System.Text.Encoding.UTF8) + ".xls");
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
HttpContext.Current.Response.Write("<meta http-equiv='content-type' content='application/ms-excel;charset=UTF-8'/>");
HttpContext.Current.Response.Write(wttable);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.End();


我这是导出了一个html的table。
不能用导出DataTable的方式去导出,因为这个html的table内容和格式有点复杂,拼不成一个DataTable.
RT
这个方式导出的excel文件,在2007中能够正常打开,只是提示“您尝试打开的文件***.xls的格式与文件扩展名指定的格式不一致,是否立即打开该文件。”打开后一切正常。但是在Office2003中打开后,里面却是一片空白,用2007转换成2003的之后,内容就又出现了,也一切都正常。

有哪位大侠知道这串代码要怎么修改下,能够达到导出的文件能正常被2003显示啊。

知道怎么去除那个“尝试打开的文件格式与扩展名指定的格式不一致。。”这个提示的也给提示下吧。。

有其他能将html中table导出到excel的方法也给提示下吧。
excel html 导出excel office2003 .net导出

------解决方案--------------------
System.IO.FileInfo file = new System.IO.FileInfo(serverPath);
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "GB2312";
            Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(file.Name));
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
            Response.AddHeader("Content-Length", file.Length.ToString());
            Response.ContentType = "application/ms-excel";
            EnableViewState = false;
            Response.WriteFile(file.FullName);
            Response.End();
你试试这个看看,我一般用这个,没出现你说的情况