首页新闻找找看学习计划

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

1
悬赏园豆:40 [待解决问题]
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的方法也给提示下吧。

記號的主页 記號 | 初学一级 | 园豆:159
提问于:2013-01-05 14:41
< >
分享
所有回答(4)
0

npoi能实现excel的导出,你这个的原因是不是因为你的电脑上有07和03同时存在??

羽商宫 | 园豆:2493 (老鸟四级) | 2013-01-05 15:21

不是这个原因,我在虚拟机里只装2003,也一样的效果。。

支持(0) 反对(0) 記號 | 园豆:159 (初学一级) | 2013-01-06 07:57

@記號: application/ms-excel换成application/vnd.ms-excel试试。。。。

要不你就看看这个。。。http://www.cnblogs.com/jyshis/archive/2011/09/19/2181235.html

支持(0) 反对(0) 羽商宫 | 园豆:2493 (老鸟四级) | 2013-01-06 16:55
0

现在基本上操作excel,就是NPOI了。

chenping2008 | 园豆:9836 (大侠五级) | 2013-01-05 16:10
0

用2003 保存为 html格式 比较下 就明白了

Tom.汤 | 园豆:1645 (小虾三级) | 2013-01-05 17:01
0

这个NPOI在导出数据的时候,首先它对对你上装的 版本没有限制,而NPOI插件的本身对版本有限制,他导出 时候,只是一内存流到字节流写到自己的硬盘上,若你的NPOI的o3的 则导出就是 03 的,若是 07的 同上。但是 office版本本身存在问题。所以,你导出了可能有问题,你可以调整下NPOI版本,或者下载更新的版本来实现。小弟不才。

Coeus.酱油帝 | 园豆:238 (菜鸟二级) | 2013-01-06 13:47
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册