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 "未开启";
    }

}

 

 

 

 

 

 

 

 

 

posted @ 2019-07-15 11:41  国际惯例  阅读(1087)  评论(0编辑  收藏  举报