「開源資訊」MyExcel 3.3.0.GA 發佈,終於支持圖片導入啦

前言

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

MyExcel採用聲明式語法來構建、讀取Excel,屏蔽POI的具體操作細節(對POI無感知),以開發常用的技術替代,使得構建(從簡單到高度複雜Excel)以及讀取Excel變得極為便利。


定位|Target

導入:提供簡便的API,讀取Excel內容,並轉化為List< Bean >。導出:可快速導出海量數據的簡單列表,可生成高複雜度佈局的Excel,複雜佈局指的是包含多種不規則合併單元格、背景色、字體大小、斜體等,可自動劃分Excel生成zip壓縮包。

MyExcel 3.3.0.GA更新內容

修復字體加粗樣式與顏色樣式無法共存問題;修復SaxExcelReader讀取多sheet異常問題;修復超鏈接無下劃線問題;修復csv生成與讀取未識別編碼問題;修復Bean字段重名無覆蓋問題;修復Bean父類字段默認導出在子類之後問題;支持圖片導入;支持模板圖片導出;支持帶括號負值形式(財務格式)讀取;支持BigInteger讀取;新增DefaultExcelReader\\SaxExcelReader noTrim方法;優化DefaultExcelReader\\SaxExcelReader,默認讀取時trim;優化DefaultStreamExcelBuilder生產者消費者模式,避免消費者線程不受控風險;優化讀取邏輯,降低內存分配頻率;

代碼示例

例如導入:

<code>List<artcrowd> result = SaxExcelReader.of(ArtCrowd.class)/<artcrowd>/<code>

<code> .sheet(0) // 0代表第一個,如果為0,可省略該操作,也可sheet("名稱")讀取/<code>

<code> .rowFilter(row -> row.getRowNum() > 0) // 如無需過濾,可省略該操作,0代表第一行/<code>

<code> .beanFilter(ArtCrowd::isDance) // bean過濾/<code>

<code> .read(path.toFile());///<code>

另外,MyExcel一直在實際生產環境中使用,每天導出、讀取Excel接近上億數據,內存佔用、抖動極低,足夠應對絕大部分應用場景。

例如導出:

<code>@GetMapping("/default/excel/example")/<code>

<code>public void defaultBuild(HttpServletResponse response) throws Exception {/<code>

<code> List<artcrowd> dataList = this.getDataList();/<artcrowd>/<code>

<code> Workbook workbook = DefaultExcelBuilder.of(ArtCrowd.class)/<code>

<code> .build(dataList);/<code>

<code> AttachmentExportUtil.export(workbook, "考生信息", response);/<code>

<code>}/<code>