导出到Excel"/>
JAVA 使用 POI实现数据导出到Excel
前言:
人生中第一次发布博客,怎么说还是有点紧张的。希望各位看官多多支持~~~!
引入:
就在上个礼拜,项目中有一个需求就是把一些数据导出到Excel中,并且要求Excel要按照规定的内容和排版显示导出来的数据。
当时看到这个需求内心还是有点小压力的,毕竟刚刚做后台没多久(ps:我在外包公司,有什么就写什么。哈哈【Fuck!】)
当然有压力还是没压力,该写还是要写的,我就开始上网查了一些关于 JAVA导出数据到Excel的一些相关文章 ,被一些只展示部分代码的那些自认为大佬的那些朋友们坑的不轻,展示的都是很简单的东西而且大家都会的,源码有的还有花钱才能下载!面对这些我决定自己研究研究,如果搞出来的话就免费发布出来,给大家提供方便或者解决一些大家出现的问题。
还好,我搞出来了。
说了一堆废话,讽刺一下那些大佬们。鼓励一下遇到问题没有找到合适答案的朋友们,多去研究咱们一样可以解决问题。
进入主题:
我使用的是JAVA POI实现的导出Excel。
当然一看名字就知道是一个库或者是一个框架,那当然少不了jar包啦!
第一步:这边因为需求是要用SpringBoot写,所以我使用了POM文件导入依赖,【如下图】
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency>
第二步:导入了依赖之后,切记不要着急,等待右下角提示导入依赖选择后才是真正的导入了POI的依赖!【如下图】
选择Import Changes 或者 Enable Auto-Import都可以,左边是每次修改依赖都需要手动去导入,右边是每次修改依赖之后自动导入,选择任意一个都可以!
第三步:扩展一下知识点
这里说一个小小的扩展:
POI 提供了对2003版本的Excel的支持 ---- HSSFWorkbook
POI 提供了对2007版本以及更高版本的支持 ---- XSSFWorkbook
这个不用犯愁很好记: 2003版本的就记住一个H,2007以及更高版本的就记住一个X!
第四步: 进入重头戏
1、我们要拿到对应版本的对象,因为现在都是高本的的Excel,所以我使用了上面提到的 XSSFWorkbook
XSSFWorkbook wb = new XSSFWorkbook();
2、拿到了wb之后,我们就可以对Excel进行排版布局了,是不是有点小激动
3、添加一个页
Sheet sheet = wb.createSheet("0");
这一步我们实现的就是Excel打开之后左下角的那个Sheet,也就是当前页!
4、开始设置Excel的排版样式【ps:具体样式根据项目需求来定,这里我举一个很大众化的布局】
相信大多数的需求应该都和这个差不多吧,开始啦。
【1】 拿到设置Excel表格样式的对象 CellStyle
然后需要把我们最开始获取的那个wb传进来,就可以对单元格进行排版了。
这里我提供一些最常用的样式:
(单元格样式) 为什么只有后两条有注释呢,那是因为我相信聪明伶俐的你们都看得懂。。哈哈哈 border很明显边框嘛
CellStyle cellStyle = wb.createCellStyle(); cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); cellStyle.setBorderTop(BorderStyle.THIN); cellStyle.setBorderBottom(BorderStyle.THIN); cellStyle.setBorderLeft(BorderStyle.THIN); cellStyle.setBorderRight(BorderStyle.THIN); cellStyle.setTopBorderColor(HSSFColor.BLACK.index); cellStyle.setBottomBorderColor(HSSFColor.BLACK.index); cellStyle.setLeftBorderColor(HSSFColor.BLACK.index); cellStyle.setRightBorderColor(HSSFColor.BLACK.index); cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 水平居中 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER)
更多推荐
JAVA 使用 POI实现数据导出到Excel
发布评论