zoukankan      html  css  js  c++  java
  • Java工具类02文件读写之Excel读写Excel4J

    1.poi

    poi用作读取Excel 需要自己封装读取方法,对excel表格循环读取。灵活但是代码量大,维护困难。

     1 <dependency>
     2     <groupId>org.apache.poi</groupId>
     3     <artifactId>poi</artifactId>
     4     <version>3.17</version>
     5 </dependency>
     6 <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml 支持2007以上版本-->
     7 <dependency>
     8     <groupId>org.apache.poi</groupId>
     9     <artifactId>poi-ooxml</artifactId>
    10     <version>3.17</version>
    11 </dependency>

    简单介绍,poi可读取当前 workbook--sheet-row/cell,根据需要循环读取,这里不做赘述。

    1 import org.apache.poi.hssf.usermodel.HSSFCell;
    2 import org.apache.poi.hssf.usermodel.HSSFRow;
    3 import org.apache.poi.hssf.usermodel.HSSFSheet;
    4 import org.apache.poi.hssf.usermodel.HSSFWorkbook;//Read the Excel 2003
    5 import org.apache.poi.xssf.usermodel.XSSFCell;
    6 import org.apache.poi.xssf.usermodel.XSSFRow;
    7 import org.apache.poi.xssf.usermodel.XSSFSheet;
    8 import org.apache.poi.xssf.usermodel.XSSFWorkbook;//Read the Excel 2017 or 2010

    2.Excel4J

    3.0版本的支持Excel和Csv的读写,使用简单,功能强大,通过反射原理在class反射对象中找到每一个注解对应的属性,使用set方法将excel每一对应字段的值循环set给对应属性。

    1  <dependencies>
    2      <dependency>
    3     <groupId>com.github.crab2died</groupId>
    4     <artifactId>Excel4J</artifactId>
    5     <version>3.0.0-Alpha</version>
    6 </dependency>

    2.1excel读取

    通过ExcelUtils.getInstance().readExcel2Object(文件路径,clazz);常用方法读取excel和csv,返回对象集合

    标注格式如下:

    1 //注解格式
    2 @ExcelField(title = "是否开启", readConverter = IsRunReadConvert.class)
    3 private boolean run;
    4 @ExcelField(title = "用例名称")
    5 private String caseName;

    读取,一行搞定:

     1 List<标注类>list = ExcelUtils.getInstance().readExcel2Object(文件路径,标注类的class); 

     2.2excel写入

    根据标注写入

    1 List list =new ArrayList<String>();
    2 list.add(new ExcelWriteTest02("否", "test01", "hello", "www.taobao.com", 6));
    3 ExcelUtils.getInstance().exportObjects2Excel(list, ExcelWriteTest02.class, filepath);

    传入的是对象列表,class对象以及文件路径

    根据标注写入时,可以自定义顺序:

     1 //按order顺序
     2 @ExcelField(title = "是否开启",order = 4) 
     3 private String run;
     4 @ExcelField(title = "用例名称",order = 3)
     5 private String name;
     6 @ExcelField(title = "类型",order = 2)
     7 private String type;
     8 @ExcelField(title = "地址",order = 1)
     9 private String url;
    10 @ExcelField(title = "顺序",order = 5)
    11 private int order;

    结果如下:

     2.3csv写入

    也是一行搞定

    1 ExcelUtils.getInstance().exportObjects2CSV(list, ExcelWriteTest02.class, filepath);

    结果展示:

     

  • 相关阅读:
    理解k8s资源限制系列(二):cpu time
    计算机网络 第五章:传输层
    SYN 攻击原理及解决方法
    Lua中 pairs和ipairs的区别
    nginx里的变量,实现简单过滤。
    LVS负载均衡(LVS简介、三种工作模式、十种调度算法)
    Lua中的loadfile、dofile、require详解
    NGINX 上的限流
    shell 输出json格式的内容
    xilinx资源
  • 原文地址:https://www.cnblogs.com/tongjc-0901/p/12565988.html
Copyright © 2011-2022 走看看