excel4j
excel4j是基于POI封装的操作excel的工具,可以方便的对excel进行读写。
1、读取
可以直接读取结果到List<List<String>>
List<List<String>> lists = ExcelUtils.getInstance().readExcel2List(path,0,0,0); 四个参数代表excel路径、从第几行开始读取(0是第一行)、一共读取几行(默认所有,0是读取一行)、sheet页index(默认0)
可以通过注解读取每一列都是一个对象
List<TestCase> testcase = ExcelUtils.getInstance().readExcel2Objects(path,TestCase.class,0,0); 四个参数代表excel路径、待绑定的类、EXCEL表头行(默认是0)、sheet页index(默认0)
#TestCase.java
@ExcelField(title = "是否开启", readConverter=IsRunConvert.class) private boolean run;
如果excel列名是“是否开启”在对象中的名字就是run,IsRunConvert实现了ReadConvertible接口重写execRead方法,如果读取excel内容的过程中,读取的内容是“是”在对象中展示true
package testexcel4j; import com.github.crab2died.converter.ReadConvertible; public class IsRunConvert implements ReadConvertible { @Override public Object execRead(String object) { if("是".equals(object)) { return true; } return false; } }
2、写入(导出)
ExcelUtils.getInstance().exportObjects2Excel(cases, TestCase.class, true, "sheet0",true,"123456.xlsx"); 参数含义 导出内容、映射对象Class、是否导出表头、sheet页名称、是否是2007以上版本(默认是)、导出的名称及路径
@ExcelField(title = "开关", writeConverter=WriteRunConvert.class) private boolean run;
和读刚好相反如果传入的列表对象有run字段,写到excel中展示标题是开关。WriteRunConvert实现了WriteConvertible重写了execWrite方法,把写入的内容做一个转换
package testexcel4j; import com.github.crab2died.converter.WriteConvertible; public class WriteRunConvert implements WriteConvertible{ @Override public Object execWrite(Object object) { if(object!=null) { boolean result=Boolean.valueOf(object.toString()); if(result) { return "开启"; }else { return "未开启"; } } return "未开启"; } }