自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

FastExcel,下一代Excel處理工具

開發(fā) 開發(fā)工具
FastExcel 將始終堅(jiān)持免費(fèi)開源,并采用最開放的 MIT 協(xié)議,使其適用于任何商業(yè)化場景。這為開發(fā)者和企業(yè)提供了極大的自由度和靈活性。

11月6日消息,阿里巴巴旗下的Java Excel工具庫EasyExcel近日宣布,將停止更新,未來將逐步進(jìn)入維護(hù)模式,將繼續(xù)修復(fù)Bug,但不再主動新增功能。

圖片圖片

EasyExcel以其快速、簡潔和解決大文件內(nèi)存溢出的能力而著稱,官方測試顯示,僅需16M內(nèi)存即可讀取75M(46萬行25列)的Excel文件,且耗時(shí)僅23秒。

目前項(xiàng)目在GitHub上擁有超過30k的stars和7.5k的forks,維護(hù)6年關(guān)閉了超過3000個(gè)issue。

但有個(gè)好消息:EasyExcel的作者創(chuàng)建了新項(xiàng)目:FastExcel。

開源地址:https://github.com/CodePhiliaX/fastexcel

作者選擇為它起名為 FastExcel,以突出這個(gè)框架在處理 Excel 文件時(shí)的高性能表現(xiàn),而不僅僅是簡單易用。

FastExcel 將始終堅(jiān)持免費(fèi)開源,并采用最開放的 MIT 協(xié)議,使其適用于任何商業(yè)化場景。這為開發(fā)者和企業(yè)提供了極大的自由度和靈活性。FastExcel 的一些顯著特點(diǎn)包括:

  • 完全兼容原 EasyExcel 的所有功能和特性,這使得用戶可以無縫過渡。
  • 從 EasyExcel 遷移到 FastExcel 只需簡單地更換包名和 Maven 依賴即可完成升級。
  • 在功能上,比 EasyExcel 提供更多創(chuàng)新和改進(jìn)。
  • FastExcel 1.0.0 版本新增了讀取 Excel 指定行數(shù)和將 Excel 轉(zhuǎn)換為 PDF 的功能。

他們計(jì)劃在未來推出更多新特性,以不斷提升用戶體驗(yàn)和工具實(shí)用性。

FastExcel 致力于成為您處理 Excel 文件的最佳選擇。

主要特性:

  • 高性能讀寫: FastExcel 專注于性能優(yōu)化,能夠高效處理大規(guī)模的 Excel 數(shù)據(jù)。相比一些傳統(tǒng)的 Excel 處理庫,它能顯著降低內(nèi)存占用。
  • 簡單易用: 該庫提供了簡潔直觀的 API,使得開發(fā)者可以輕松集成到項(xiàng)目中,無論是簡單的 Excel 操作還是復(fù)雜的數(shù)據(jù)處理都能快速上手。
  • 流式操作: FastExcel 支持流式讀取,將一次性加載大量數(shù)據(jù)的問題降到最低。這種設(shè)計(jì)方式在處理數(shù)十萬甚至上百萬行的數(shù)據(jù)時(shí)尤為重要。

建議您使用最新版本的 FastExcel,因?yàn)樽钚掳姹局械男阅軆?yōu)化、BUG修復(fù)和新功能都會讓您的使用更加方便。

當(dāng)前 FastExcel 底層使用 poi 作為基礎(chǔ)包,如果您的項(xiàng)目中已經(jīng)有 poi 相關(guān)組件,需要您手動排除 poi 的相關(guān) jar 包。

如果您使用 Maven 進(jìn)行項(xiàng)目構(gòu)建,請?jiān)?pom.xml 文件中引入以下配置:

<dependency>
    <groupId>cn.idev.excel</groupId>
    <artifactId>fastexcel</artifactId>
    <version>1.0.0</version>
</dependency>

如果您使用 Gradle 進(jìn)行項(xiàng)目構(gòu)建,請?jiān)?build.gradle 文件中引入以下配置:

dependencies {
    implementation 'cn.idev.excel:fastexcel:1.0.0'
}

EasyExcel 與 FastExcel 的區(qū)別:

  • FastExcel 支持所有 EasyExcel 的功能,但是 FastExcel 的性能更好,更穩(wěn)定。
  • FastExcel 與 EasyExcel 的 API 完全一致,可以無縫切換。
  • FastExcel 會持續(xù)的更新,修復(fù) bug,優(yōu)化性能,增加新功能。EasyExcel 如何升級到 FastExcel
1. 修改依賴

將 EasyExcel 的依賴替換為 FastExcel 的依賴,如下:

<!-- easyexcel 依賴 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>xxxx</version>
</dependency>

依賴替換為

<dependency>
    <groupId>cn.idev.excel</groupId>
    <artifactId>fastexcel</artifactId>
    <version>1.0.0</version>
</dependency>
2. 修改代碼

將 EasyExcel 的包名替換為 FastExcel 的包名,如下:

// 將 easyexcel 的包名替換為 FastExcel 的包名
import com.alibaba.excel.**;

替換為

import cn.idev.excel.**;
3. 不修改代碼直接依賴 FastExcel

如果由于種種原因您不想修改代碼,可以直接依賴 FastExcel ,然后在 pom.xml 文件中直接依賴 FastExcel。EasyExcel 與 FastExcel 可以共存,但是長期建議替換為 FastExcel。

4. 建議以后使用 FastExcel 類

為了兼容性考慮保留了 EasyExcel 類,但是建議以后使用 FastExcel 類,F(xiàn)astExcel 類是FastExcel 的入口類,功能包含了 EasyExcel 類的所有功能,以后新特性僅在 FastExcel 類中添加。

簡單示例:讀取 Excel 文件 下面是讀取 Excel 文檔的例子:

// 實(shí)現(xiàn) ReadListener 接口,設(shè)置讀取數(shù)據(jù)的操作
publicclass DemoDataListener implements ReadListener<DemoData> {
    @Override
    public void invoke(DemoData data, AnalysisContext context) {
        System.out.println("解析到一條數(shù)據(jù)" + JSON.toJSONString(data));
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        System.out.println("所有數(shù)據(jù)解析完成!");
    }
}

public static void main(String[] args) {
    String fileName = "demo.xlsx";
    // 讀取 Excel 文件
    FastExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
}

簡單示例:創(chuàng)建 Excel 文件 下面是一個(gè)創(chuàng)建 Excel 文檔的簡單例子:

// 示例數(shù)據(jù)類
publicclass DemoData {
    @ExcelProperty("字符串標(biāo)題")
    private String string;
    @ExcelProperty("日期標(biāo)題")
    private Date date;
    @ExcelProperty("數(shù)字標(biāo)題")
    private Double doubleData;
    @ExcelIgnore
    private String ignore;
}

// 填充要寫入的數(shù)據(jù)
private static List<DemoData> data() {
    List<DemoData> list = new ArrayList<>();
    for (int i = 0; i < 10; i++) {
        DemoData data = new DemoData();
        data.setString("字符串" + i);
        data.setDate(new Date());
        data.setDoubleData(0.56);
        list.add(data);
    }
    return list;
}

public static void main(String[] args) {
    String fileName = "demo.xlsx";
    // 創(chuàng)建一個(gè)名為“模板”的 sheet 頁,并寫入數(shù)據(jù)
    FastExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());}


責(zé)任編輯:武曉燕 來源: 一安未來
相關(guān)推薦

2013-07-27 21:28:44

2013-06-27 11:21:17

2015-11-09 10:42:07

2015-09-10 09:39:01

容器技術(shù)Docker

2020-09-27 17:27:58

邊緣計(jì)算云計(jì)算技術(shù)

2025-01-03 09:24:10

模型架構(gòu)論文

2020-09-16 10:28:54

邊緣計(jì)算云計(jì)算數(shù)據(jù)中心

2013-09-09 16:28:36

2016-01-26 11:58:12

2022-07-17 06:48:39

Vite 3.0前端工具鏈

2018-09-27 18:47:45

AIOpsDevOps

2018-09-25 07:00:50

2011-06-30 11:02:22

2012-12-12 10:29:57

2009-01-11 10:13:39

Stripes開發(fā)框架JSP

2015-09-28 16:24:34

YARNHadoop計(jì)算

2013-07-27 21:41:14

APT攻擊下一代威脅

2022-07-06 11:38:40

人工智能AI

2009-04-06 08:42:18

Firefox瀏覽器

2012-10-29 12:23:44

BYODIT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號