execl表格导出问题

前几天在公司做了一个财务报表的导出,导出的表格模板已经做好了,自己测试的时候也是好的,能正常的通过浏览器直接下载出来。但是移植到项目中的时候,出现了问题,代码没有任何的问题,但是就是不下载模板。经过分析终于把问题给解决了,现在把问题写出来,防止大家有一样的问题。
表格的导出使用的是:
//创建一个HSSFWorkbook对象
HSSFWorkbook wb=new HSSFWorkbook();
//创建HSSFSheet对象
HSSFSheet sheet= wb.createSheet();
sheet.setDefaultRowHeightInPoints(20);
sheet.setDefaultColumnWidth(10);
sheet.setColumnWidth(1, 5000 );
//创建HSSFRow对象
//这个是第一行的东西
HSSFRow row1 = sheet.createRow(0);
row1.createCell(0).setCellValue(“订单APP(公司品牌):”);
//合并单元格CellRangeAddress构造参数依次表示起始行,截至行,起始列, 截至列
sheet.addMergedRegion(new CellRangeAddress(0,0,0,2));
其余的就不列出来了,就是先把固定的东西,写好,数据封装集合,遍历往里面放。
先来说问题出现的原因:
在页面用的是动态js进行访问的。
在js里面我用的是ajax进行访问,经过debug,确实进入了我们写的controller,,确实流的输出也走完了,代码没有任何问题,但是就是没有下载表格。
我们通过分析浏览器的response输出看到了,确实有数据但是,格式全是乱码的,所以就没有能能够输出来。通过分析因为是ajax请求,他把格式转换为json的格式输出了,不是我们想要的结果,所以就没有下载我们预想的效果。
最后我们换一个请求的方式就可以了。
用location.href=”xxxxxx.do?a=”b;的格式,我们就能正常的进项访问。

相同的问题,有一次在进行一个简单的controller跳转页面,代码全部已经走完了,但是在最后
return 页面的路径的时候,就一直报错handlerMethodInvoker()这个异常,其实也是和刚才这个原因一样。

建议:如果大家要直接跳转页面不用返回给面叶什么数据,就不用ajax了,直接超链接或者用location.href。这样能避免采坑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值