目录
下面代码为导入部分即excel转换为JavaBean对象 红色部分为关键代码
工具下载 excel_io-poi3.14 excel_io-poi3.17
excel_io.jar 工具是依赖于poi和poi-ooxml两个apached的jar包 进行的开发的,分别依赖3.14 和3.17两个版本,请下载的用户注意如果名字为excel_io-poi3.14.jar na依赖的就是poi 的3.14版本了。如果名为 excel_io-poi3.17.jar,那么就是依赖的 poi 的3.17版本了。
Maven 引入代码
POI 3.14 的引入
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.14</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.14</version>
</dependency>
POI 3.17 的引入
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
excel_io.jar 使用介绍
-
设置JavaBean
- 在需要和excel 文档字段对应的javabean 属性上使用注解 @ExcelProperty(zh="",sequence=0);
- @ExcelProperty注解有三个属性分别是zh 表示excel中对应字段的中文名(必填),sequence 表示在cexcel中的顺序,从0开始,如果不设置,所有字段默认为0。requisite 设置是否必须有值,该属性在工具中暂时未用到,请关注后续更新。
-
excel文档 到 JavaBean 的使用
- 创建Excel类对象,Excel类提供了两个构造器分别是Excel(Class<T> clasz)、Excel(Class<T> clasz,String sheetName)
- Excel(Class<T> clasz)传入和excel文档应的JavaBean,但是excel的sheet表必须是第一个。否则导入失败。
- Excel(Class<T> clasz,String sheetName) 和前一个构造器的区别是传入一个sheet表的名字。
- 调用readExcel(InputStream fis)方法,返回一个List<T> 对象;
-
JavaBean 到 excel文档的使用
- 和前面一样,创建Excel类对象,不再累述。
- 调用createExcel(List<T> objs),参数未装有数据的JavaBean对象的集合对象。返回一个 Workbook 对象,直接调用Workbook对象的write(OutputStream stream) 生成excel文档。
JavaBean的设置
@ExcelProperty(zh="生日",sequence=3)
private Date birthday;
@ExcelProperty(zh="姓名",sequence=0)
private String name;
@ExcelProperty(zh="手机号码",sequence=2)
private String phoneNum;
@ExcelProperty(zh="年龄",sequence=1)
private int age;
setter\getter……
JavaBean转换为Excel文档 红色部分为关键代码
File file = new File("F:/poi/test/type.xlsx");
FileOutputStream fos = new FileOutputStream(file);
Excel<People> excel = new Excel<>(People.class);
List<People> peoples = new ArrayList<People>();
for(int i=0;i<10;i++) {
People p =new People();
p.setName("Mac"+i);
p.setAge(20+i);
p.setPhoneNum("1366111111"+i);
try {
p.setBirthday(new SimpleDateFormat("yyyy/MM/dd").parse("2018/10/31"));
} catch (ParseException e) {
e.printStackTrace();
}
peoples.add(p);
}
Workbook workbook =excel.createExcel(peoples);
workbook.write(fos);
下面代码为导入部分即excel转换为JavaBean对象 红色部分为关键代码
File file = new File("F:/poi/test/type.xlsx");
Excel<People> excel = new Excel<>(People.class);
InputStream fis = new FileInputStream(file);
List<People> peoples = excel.readExcel(fis);
for(People p:peoples) {
System.out.println(p);
}