有些项目中要导入和导出excel文件。现在使用的工具有两个好用的其中有:
apache下的poi;阿里的EasyExcel。今天我们来简单的学习一下如何使用poi进行导入与导出。
首先说明一下:poi不只能实现excel的导入导出。
其中excel的版本有两种,分别是以.xls为结尾的老版本和.xlsx为结尾的,在导出的时候我没有用到版本的限制只有在导入的时候我用到了版本。
在开始之前声明一下:这是本人在开发小项目的时候在短时间使用的,如有不对的和可以优化的地方希望大佬可以指出。谢谢!
说一下我的导出思路:
首先将excel看成一个"数据库"这样更好的理解,这里的"数据库"就是HSSFWorkbook。
其次将excel中的每一页可以看成是一个数据库中的"表",这里的"表"就是sheet。
其次“表”中的每行为"字段":row。
其次 每一行的一个单元格可以看成一个"属性":cell。
那这样的话我们的导出的理解就更加方便了。
- new一个数据库:HSSFWorkbook。
- 通过new的对象进行创建表单 createSheet("表名称")。
- 在创建属性的时候,我们想的是在第一行中添加属性,这样我们要创建sheet.createRow(0),这样显示的是第一行。
- 创建单元格中的属性:row.createCell(0).setCellValue("属性名称")。
- 填写其他行的属性----->可以使用for 循环进行添加。
- 最后使用输出流导出excel。
导出:
步骤一:导入jar:
<dependency>
步骤二:开始编写:
//创建xls文件
说一下我的导入思路:
导入和导出一样,但是要导入到数据库中,所以我们可以反向操作(笑哭)。导出怎么使用我们就反向写入。但是我们在导入的时候要判断版本。
写个判断版本的类,同时要使用流进行操作
public
编写:
//创建输入流
这只是我短时间内查看后的编写的。这里面的代码太粗糙了简单的了,等有时间沉下心来仔细翻看api后会进行跟新。其实导入的时有很多要注意的,只是这里项目时间短,没有仔细想一下。比如在上传的时候可以判断这一行是否有数据等。等有时间再看api吧,这里希望大家也可以看一下api。相比与这个,api才是真的正解。
代码粗糙,基本都写的有点死,还希望大佬能够指点。