1. 程式人生 > 其它 >Java對Excel的讀寫操作

Java對Excel的讀寫操作

技術標籤:工具類

通過Alibaba的EasyExcel可以實現Excel的操作

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.1.1</version>
        </dependency>

寫操作

//實體類
@Data
public class DemoData {

   //表頭1
@ExcelProperty("學生編碼") private int sno; //表頭2 @ExcelProperty("學生姓名") private String sname; @Override public String toString(){ return "DemoData{"+"sno="+sno+",sname="+sname+ '\'' + '}'; } } ------------- //工具類 public
class WriteTestEasyExcel { public static void main(String[] args) { //檔案路徑,不存在則建立,存在則追加 String fileName="D:\\\\33.xlsx"; //fileName檔案路徑,DemoData引數實體類,sheet表名 EasyExcel.write(fileName,DemoData.class).sheet("學生列表").doWrite(data()); } //寫操作,可批量寫入
private static List<DemoData> data(){ List<DemoData> list=new ArrayList<DemoData>(); DemoData data=new DemoData(); data.setSno(i); data.setSname("張三"+i); list.add(data); return list; } }

讀操作


//實體類
@Data
public class ReadData {
	//讀取表頭
    @ExcelProperty(index = 0)
    private int sid;
    @ExcelProperty(index = 1)
    private String sname;
    @Override
    public String toString(){
        return "DemoData{"+"sno="+sid+",sname="+sname+ '\'' + '}';
    }
}
---------
//讀取監聽器
public class ExcelListener extends AnalysisEventListener<ReadData> {
    //最終資料
    List<ReadData> list=new ArrayList<ReadData>();
    //讀取每一行excel
    @Override
    public void invoke(ReadData data, AnalysisContext analysisContext) {
        System.out.println(data);
        list.add(data);
    }
    //讀取excel表頭資訊
    @Override
    public void invokeHeadMap(Map<Integer,String> headMap,AnalysisContext context){
        System.out.println("*****"+headMap);
    }
    //讀取完執行
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    }
}
----------
//讀取操作
public class ReadTestEasyExcel {
    public static void main(String[] args) {
        //檔案的全限路徑
        String fileName="D:\\\\11.xlsx";
        EasyExcel.read(fileName,ReadData.class,new ExcelListener()).sheet().doRead();
    }
}