Java项目生成Excel并通过浏览器下载

记一次拙劣的下载优化,因水平有限,各位朋友如果有更好的建议,欢迎留言。

背景:之前版本的下载是在代码里生成Workbook文件,然后将该workbook对象写入浏览器的输出流,以此完成下载。

问题:小的文本文件无所谓,但是如果是包含了大量图片的大文件,这种操作会在workbook下入浏览器输出流的时候出现一个瓶颈,不仅本线程会很慢,更会因为占用太多的资源拖累整个应用程序。

(1) 之前的下载代码如下

上述代码就是直接将生成的workbook写入HttpServletResponse对象的输出流。

(2) 优化方案是:先将生成的workbook存放到服务器一个路径下,然后将该文件对应的网络路径返回给浏览器,由浏览器进行下载,这样的话在workbook写入输出流这一步就可以省下一些资源。代码如下

改版后的下载没有用多线程,而是单线程下载(公司自己的服务器,性能实在太差,需要省着用)。改完后,生成的workbook是先存放在服务器指定目录下,然后将服务器的网络路径加上文件的相对路径,返回给浏览器。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值