最近在工作过程中遇到了一个需要将数据库的数据导出为Excel文件的需求,以便运营团队分析数据。
众所周知,POI是Apache软件基金会的一个用于处理office中各个文档格式的库,但是它太原始了,不利于我们快速开发。又因为一开始的需求是把列表数据转换为Excel,于是我就在谷歌上搜索了一下关键词“Java把列表数据转换为Excel”,于是搜到了XXL-EXCEL。
一、XXL-EXCEL
这是一款专门用于把Java对象列表与Excel互相转换的第三方库,官方宣称一行代码完成Java对象和Excel之间的转换,事实上也确实如此。XXL-EXCEL的优势就是可以简单快捷的完成Java对象列表与Excel的互相转换。使用方式在官网也写得非常清楚,这里就不展示了。一开始用的时候,还感觉XXL-EXCEL挺好用的,但是随着需求的增加,它的缺点就暴露了出来,就是功能过于简单,可以自定义的地方太少。比如我在一个Excel文件中有多个sheet,sheet的名字就不能自定义,XXL-EXCEL默认的行为就是把在Java对象名的注解上注明的名字后面添加一个递增数字。比如用@ExcelSheet(name = “商户列表”)表明sheet1默认的名字是商户列表,如果我想把商户按地区分为几个sheet,那么用XXL-EXCEL的效果就是sheet2被自动命名为商户列表1,然后sheet3被命名为商户列表2,以此类推。这样就达不到我想自定义sheet名字的目的。还有有时候我想调节一下每列的间距以便完整的显示数据,这个用XXL-EXCEL也是做不到的。于是我就继续在网上搜索相关的第三方库,最终搜到了我下面要分享的Easy-Excel。
二、Easy-Excel
Easy-Excel是阿里团队出的一款解决读写Excel的库,它完美的解决了我上面的痛点,不仅可以自定义sheet名字,还能更改列间距,甚至还能自由更换背景颜色和文字大小,其中最让我喜欢的就是它支持直接导出为网络流,不用再导出为文件然后转换为网络流了。特别适合我的使用场景,就是提供给运营人员下载。使用方式在官网写的也非常清楚,感兴趣的同学可以自己研究。
我不生产知识,我只是知识的搬运工。
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!