歡迎您光臨本站 註冊首頁

MyExcel 2.3.0 版本發布,支持 SAX 方式導入

←手機掃碼閱讀     admin @ 2019-05-19 , reply:0

MyExcel 是一個集導入、導出、加密 Excel 等多項功能的 Java 工具包。

導入:提供簡便的API,讀取Excel內容,並轉化為List< Bean >。

導出:可快速導出海量數據的簡單列表,可生成高複雜度布局的Excel,複雜布局指的是包含多種不規則合併單元格、背景色、字體大小、斜體等。

優點:

  • 可生成任意複雜表格:本工具使用迭代單元格方式進行excel繪製,可生成任意複雜度excel,自適應寬度、高度;

  • 零學習成本:使用html作為模板,學習成本幾乎為零;

  • 支持常用背景色、邊框、字體等樣式設置:具體參見文檔-Style-support(樣式支持)部分;

  • 支持.XLS、.XLSX:支持生成.xls、.xlsx後綴的excel;

  • 支持公式導出:支持Excel模板中設置公式,降低服務端的計算量;

  • 支持低內存SXSSF模式:支持低內存的SXSSF模式,可利用極低的內存生成.xlsx;

  • 支持生產者消費者模式導出:支持生產者消費者模式導出,無需一次性獲取所有數據,分批獲取數據配合SXSSF模式實現真正意義上海量數據導出;

  • 支持多種模板引擎:已內置Freemarker、Groovy、Beetl等常用模板引擎Excel構建器(詳情參見文檔Getting started),推薦使用Beetl模板引擎(Beetl文檔);

  • 提供默認Excel構建器,直接輸出簡單Excel:無需編寫任何html,已內置默認模板,可直接根據POJO數據列表輸出;

  • 支持一次生成多sheet:以table作為sheet單元,支持一份excel文檔中多sheet導出;

本次更新如下:

  • 新增SaxExcelReader,支持sax方式讀取,避免OOM;

  • 優化讀取轉換方式,性能提升;

  • DefaultExcelReader新增beanFilter方法,支持bean過濾;

  • 增加Bean反射緩存;

  • 升級jsoup為1.12.1,模板方式導出性能提升,內存佔用降低;

// 方式一:全部讀取后處理
Listresult = SaxExcelReader.of(ArtCrowd.class)
        .sheet(0) // 如果為0,可省略該操作
        .rowFilter(row -> row.getRowNum() > 0) // 如無需過濾,可省略該操作,0代表第一行
        .read(path.toFile());

// 方式二:讀取一行處理一行,可自行決定終止條件
SaxExcelReader.of(ArtCrowd.class)
        .sheet(0) // 如果為0,可省略該操作
        .rowFilter(row -> row.getRowNum() > 0) // 如無需過濾,可省略該操作,0代表第一行
        .readThen(path.toFile() ,artCrowd -> System.out.println(artCrowd.getName));

public class ArtCrowd {
    // index代表列索引,從0開始
    @ExcelColumn(index = 0)
    private String name;

    @ExcelColumn(index = 1)
    private String age;

    @ExcelColumn(index = 2,dateFormatPattern="yyyy-MM-dd")
    private Date birthday;
}

具體使用,請移步:https://github.com/liaochong/myexcel/wiki


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/106802/myexcel-2-3-0-released
MyExcel 2.3.0 版本發布,支持 SAX 方式導入已經有290次圍觀

http://coctec.com/news/all/show-post-205366.html