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的方法也给提示下吧。
npoi能实现excel的导出,你这个的原因是不是因为你的电脑上有07和03同时存在??
不是这个原因,我在虚拟机里只装2003,也一样的效果。。
@記號: application/ms-excel换成application/vnd.ms-excel试试。。。。
要不你就看看这个。。。http://www.cnblogs.com/jyshis/archive/2011/09/19/2181235.html
现在基本上操作excel,就是NPOI了。
用2003 保存为 html格式 比较下 就明白了
这个NPOI在导出数据的时候,首先它对对你上装的 版本没有限制,而NPOI插件的本身对版本有限制,他导出 时候,只是一内存流到字节流写到自己的硬盘上,若你的NPOI的o3的 则导出就是 03 的,若是 07的 同上。但是 office版本本身存在问题。所以,你导出了可能有问题,你可以调整下NPOI版本,或者下载更新的版本来实现。小弟不才。