poi+sprinboot导出excel,不能用ajax方式

因为jaxa的返回类型问题(text,json,xml),不能将文件从浏览器下载

所以需要在前台用form表单的方式提交

前台代码:

HTML部分:
<form action="/marketOperation/reportStatistic/getExcel.do" method=post name=form1 style='display:none'>
<input type="hidden" name="type" value="111">
</form>

JS部分:

document.form1.submit();

JAVA部分:

@PostMapping("/getExcel")
@ResponseBody
public void getExcel( @RequestParam String type,HttpServletResponse response) {
    Map map = new HashMap();
    try{

        String fileName="新闻.xls";
        response.setContentType("application/excel");
        response.setHeader("Content-disposition","attachment;filename=" +fileName +";filename*=utf-8''"+ URLEncoder.encode(fileName,"UTF-8"));
        //        response.flushBuffer();

        HSSFWorkbook workbook=new HSSFWorkbook();
        HSSFSheet sheet=workbook.createSheet("sheet1");
        int rowNum=0;
        //添加标题
        String[] headers={"标题","板块","作者","创建时间","内容"};
        HSSFRow row=sheet.createRow(rowNum);
        for (int i =0; i <headers.length;i++){
            HSSFCell cell=row.createCell(i);
            HSSFRichTextString text=new HSSFRichTextString(headers[i]);
            cell.setCellValue(text);
        }
        //添加数据
        for (int i = 0;i<5;i++) {
            rowNum++;
            HSSFRow row1=sheet.createRow(rowNum);
            row1.createCell(0).setCellValue("杀人啦");
            row1.createCell(1).setCellValue(2);
            row1.createCell(2).setCellValue(3);
            row1.createCell(3).setCellValue(4);
            row1.createCell(4).setCellValue(5);
        }
        //logger.info("==============================="+"开始写入================");
        workbook.write(response.getOutputStream());
    }catch(Exception e){}

}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值