java response excel_java-返回在servlet中创建的excel文件作为响应

在Java中使用Apache POI创建了Excel文件后,尝试通过Servlet以HTTP响应的方式返回,期望浏览器弹出保存文件对话框。然而,当前的Servlet响应设置存在问题,导致没有出现预期的保存提示。已经尝试过StackOverflow上的解决方案,但未能成功应用到SAPUI5环境中。客户端使用jQuery AJAX进行POST请求,而Servlet设置了相应的内容类型、头信息以及输出流来写入文件,但在处理数据库查询结果集时可能出现了问题。
摘要由CSDN通过智能技术生成

我已经使用Apache POI创建了excel文件,并尝试将其返回为对ajax调用的响应.我希望浏览器提示“保存创建的文件”窗口.

问题是我在servlet的响应中出现混乱,没有任何提示或任何提示

我在StackOverflow上发现了类似的问题,但是对他们来说,解决这些问题的方法对我不起作用(或者我错过了).

Here通过使用html标记解决了问题,但据我所知,我不能(在我看来)在SAPUI5中使用它们.

here是一个非常相似的案例,我曾用过,但仍然无法正常工作.

这是客户端代码:

jQuery.ajax({

url : "Export",

type : "post",

mimeType: 'application/vnd.ms-excel',

success : function(){

console.log("data was exported successfully");

},

error: function(){

console.log("error while exporting data");

},

complete: function(){

console.log("exporting data has been completed");

}

});

这是servlet的代码:

response.setContentType("application/vnd.ms-excel");

response.setHeader("Expires", "0");

response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");

response.setHeader("Pragma", "public");

response.setHeader("Content-Disposition", "attachment; filename=ReportsData.xls");

ServletOutputStream out = response.getOutputStream();

workbook.write(out);

out.flush();

out.close();

该文件是通过while(result.next())循环中的数据库“ select”错误结果集创建的.

谢谢!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值