easyExcel 比poi 更加简单的 excel 解析工具

您所在的位置:网站首页 easyexcel对应poi版本 easyExcel 比poi 更加简单的 excel 解析工具

easyExcel 比poi 更加简单的 excel 解析工具

#easyExcel 比poi 更加简单的 excel 解析工具| 来源: 网络整理| 查看: 265

 

EasyExcel 写 excel 文件

 

easyexcel 文档地址: https://easyexcel.opensource.alibaba.com/ 

  1 excel 的简单解析  

  ExcelRow 是自定义的用于接受一行数据的类,对应这一行数据的没一个字段或者说列

@Test public void read() { List list = new ArrayList(); EasyExcel.read(new File("C:\\Users\\ZHANGYUKUN\\Desktop\\excel文件.xlsx"),ExcelRow.class, new ReadListener() { @Override public void invoke(ExcelRow o, AnalysisContext analysisContext) { list.add(o); } @Override public void doAfterAllAnalysed(AnalysisContext analysisContext) { } }).headRowNumber(0).doReadAll(); System.out.println(JSONObject.toJSONString( list )); }

  

 

 

2 excel 的简单导出

 

/** * 写无头的文件 */ @Test public void write() { ExcelWriterSheetBuilder sheet = EasyExcel.write(new File("C:\\Users\\ZHANGYUKUN\\Desktop\\excel文件.xlsx")).sheet(); sheet.doWrite( getData() ); }

  

 

/** * 写有头的文件 */ @Test public void write2() { //ExcelRow 字段默认作为 head的 名字 ExcelWriterSheetBuilder sheet = EasyExcel.write(new File("C:\\Users\\ZHANGYUKUN\\Desktop\\excel文件.xlsx"),ExcelRow.class).sheet(); sheet.doWrite( getData() ); }

  

 

3 excel 的填充   1 单行填充

    使用 {变量名字}

  2 多行填充

    垂直填充:FillConfig.builder().direction(WriteDirectionEnum.VERTICAL) 默认

    水平填充: FillConfig.builder().direction(WriteDirectionEnum.HORIZONTAL)

     使用 {.变量名字}   3 复合填充

    强制换行:FillConfig.builder().forceNewRow(true).build() 

/** * 写有头的文件 */ @Test public void write3() throws FileNotFoundException { File file = ResourceUtils.getFile("classpath:easyExcelTemple.xlsx"); //ExcelRow 字段默认作为 head的 名字 ExcelWriter excelWriter = EasyExcel.write( new File("C:\\Users\\ZHANGYUKUN\\Desktop\\excel文件.xlsx") ).withTemplate( file ).build(); WriteSheet writeSheet = EasyExcel.writerSheet(0).build(); HashMap map = new HashMap(); map.put("avg","avg80"); map.put("total","total99"); excelWriter.fill( getData(), FillConfig.builder().forceNewRow(true).build() ,writeSheet ); excelWriter.fill( map ,writeSheet ); excelWriter.finish(); }

 

数据:

public List getData(){ List list = new ArrayList(); ExcelRow excelRow = new ExcelRow(); excelRow.setId("1"); excelRow.setName("name1"); excelRow.setAge("age1"); excelRow.setHeadImage("headImage1"); list.add(excelRow); ExcelRow excelRow2 = new ExcelRow(); excelRow2.setId("1"); excelRow2.setName("name1"); excelRow2.setAge("age1"); excelRow2.setHeadImage("headImage1"); list.add(excelRow2); ExcelRow excelRow3 = new ExcelRow(); excelRow3.setId("1"); excelRow3.setName("name1"); excelRow3.setAge("age1"); excelRow3.setHeadImage("headImage1"); list.add(excelRow3); return list; }

  

模型:

public class ExcelRow { @ExcelProperty(index = 0,value="Id") private String id; @ExcelProperty(index = 1,value="名字") private String name; @ExcelProperty(index = 2,value="年龄") private String age; @ExcelProperty(index = 3,value="头像") private String headImage; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getHeadImage() { return headImage; } public void setHeadImage(String headImage) { this.headImage = headImage; } }

  

 

 

excel模板样式:

 

 

 

 

4 单元格合并和样式修改

 

 

 

 

 

POI 读写 excel文件   1 三个版本的excel 文件对象

    03,

    07,

    07优化版

 

  2 读取

 

 

  3 写入

 

 

  4 excel样式修改

 

  

 



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3