导出CSV文件ie提示无法打开Internet站点

[color=brown][size=small]使用SpringMvc导出csv文件时在火狐、谷歌、360、搜狗等浏览器都能正确导出,在ie浏览器上就提示找不到站点错误,本地ie版本是8.0.7601,错误提示如附件:[/size][/color]

[img]http://dl2.iteye.com/upload/attachment/0117/1354/203a22e0-a963-34df-9155-88568ef9f63b.png[/img]

[color=brown][size=small]程序代码如下:[/size][/color]

@RequestMapping(value="/exportWithdraw.do", method= RequestMethod.GET)
public ModelAndView exportDetail(HttpServletResponse res,ParmPojo pojo){
String fileName = new String("详情".getBytes("GBK"),"ISO8859-1")+".csv";
res.setContentType("application/vnd.ms-excel;charset=GBK");
res.setHeader("Content-Disposition", "attachment;filename="+fileName);

ModelAndView mv = new ModelAndView("/back/exportDetail.jsp");
List<JSONObject> jsonObjList = bo.getByTch(pojo);
mv.addObject("datas", jsonObjList);//设置查询的结果集
return mv;
}



js页面调用

$("#tc_export").click(function(){
var params = getUrlParam();//获取参数
window.open(localPath + "exportWithdraw.do?" + params);
})

function getUrlParam() {
var condition = {};
condition.reportDateSch = reportDate;
condition.typeSch = type;
var html = [];
for(var key in condition){
html.push(key+'='+condition[key]);
}
return html.join('&');
}



导出文件的exportDetail.jsp页面内容

<%@page import="org.json.JSONObject"%>
<%@page import="java.util.List"%>
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%List<JSONObject> jsonObjList = (List<JSONObject>)request.getAttribute("datas");
StringBuilder sb = new StringBuilder();
for(JSONObject obj : jsonObjList) {
sb.append(obj.get("typeStr"));
sb.append(",").append(obj.get("realName"));
sb.append(",").append(obj.get("cityName"));
// 加上"\t"会显示后两位小数
sb.append(",\t").append(obj.get("balance"));
sb.append("\r\n");
}%>类型,真实姓名,城市,金额 <%=sb.toString()%>


经查找之后发现是请求响应没有重置导致,修改java代码如下:


@RequestMapping(value="/exportWithdraw.do", method= RequestMethod.GET)
public ModelAndView exportDetail(HttpServletResponse res,ParmPojo pojo){
String fileName = new String("详情".getBytes("GBK"),"ISO8859-1")+".csv";
res.reset();//解决ie浏览器下载找不到站点问题
res.setContentType("application/vnd.ms-excel;charset=GBK");
res.setHeader("Content-Disposition", "attachment;filename="+fileName);

ModelAndView mv = new ModelAndView("/back/exportDetail.jsp");
List<JSONObject> jsonObjList = bo.getByTch(pojo);
mv.addObject("datas", jsonObjList);//设置查询的结果集
return mv;
}

[b][color=red] 增加了 res.reset(); ,问题解决了,所有浏览器都支持[/color][/b]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好,如果在使用 Vue 导出 Excel 文件提示文件无法打开,可能是因为导出的 Excel 文件格式不正确。以下是一些可能导致文件无法打开的问题和解决方法: 1. 文件格式问题:确保导出文件格式是 `.xlsx` 或 `.xls`,这是常用的 Excel 文件格式。你可以在导出指定文件格式,如下所示: ```javascript exportExcel() { const wb = XLSX.utils.table_to_book(this.$refs.table); XLSX.writeFile(wb, 'filename.xlsx', { bookType: 'xlsx' }); } ``` 其中,`bookType` 属性指定了文件格式为 `xlsx`。 2. 文件编码问题:Excel 文件一般使用 UTF-8 编码,确保你的导出文件也是使用 UTF-8 编码,如下所示: ```javascript const wb = XLSX.utils.table_to_book(this.$refs.table); const wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' }); const s2ab = function (s) { const buf = new ArrayBuffer(s.length); const view = new Uint8Array(buf); for (let i = 0; i !== s.length; ++i) { view[i] = s.charCodeAt(i) & 0xFF; } return buf; }; saveAs(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }), 'filename.xlsx'); ``` 在这个例子中,我们使用了 `s2ab` 函数将文件编码转换为 `Uint8Array`,然后使用 `Blob` 下载文件。 3. 文件内容问题:确保导出的 Excel 文件内容是正确的,它应该包含正确的表头和数据。你可以在浏览器中打开导出的 Excel 文件,确保它包含正确的数据。如果仍然无法打开,请检查你的代码是否有问题。 希望这些解决方法能够帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值