Java 的导出

开发工具与关键技术: MyEclipse 10、Java语法
作者:邓婵
撰写时间:2019年 07月 15日

其实Java导出的写法与MVC的写法基本上是一致的,不同在于MVC中使用的是NPOI而Java是POI,所以我们要做导出的功能首先要把POI包引进来。
下面这些就是我们需要用到的POI包:

在这里插入图片描述
下面我们来看看相关代码,首先在dao实现类里面查询出我们的需要导出的数据,再把查询到的数据返还回来被控制器调用,相关代码可参考图下:
在这里插入图片描述
这些是写在控制器里面的,而这里我用到的是文件流,把查询出来的数据写在了文件流里面,相关代码可参考图下所示:
在这里插入图片描述
说明:虽然这样的写法可以导出,但导出在服务器当中,不符合我们的需求,也不建议采用。其实Java写的东西是运行在服务器上,但一般服务器和用户并不在同一台电脑上,然后服务器导出就导出在电脑上,而用户却无法查看。其实一开始我也没有考虑到这些,之所以会忽略这一点,是因为我现在既是在本机开发又是在本机调试、测试所以我们就会感觉是在本机上,但事实上Java开发完的东西都会打包上传到服务器,那么我这个导出就会导出到服务器上,用户并不在我服务器上操作,只是在我的浏览器上操作,这个时候就看不到我的文件。因此,我们并不采用这样的写法。

以下为更好的写法:
说明:其实这里的写法与上面的写法的不同之处在于这里需要设置文件Mime类型和文件下载名称。因为我们的文件都是用IO字节流,其实response本身就是有流的,所以我们可以去获取response的输出流,这样我们就有流了,再将Excel写入流里面去,然后把流推出去,最后再关闭流。

什么为文件Mime类型?
Mime类型代表某一种文件的网络类型,浏览器看到这个类型的变化就会知道我需要下载哪个类型,相当于一个公共编号。

控制器当中的写法,相关代码可参考图下:
在这里插入图片描述
总结:两种写法都是导出但输出的效果却大不相同,前者只会导出到服务器上,用户在浏览器上操作就会看不到导出的文件,后者则不一样,它可以让用户更方便快捷的查看导出的数据。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值