日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 处理表格,也很轻松

發布時間:2025/3/15 java 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 处理表格,也很轻松 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個簡單又快速的表格處理庫

大家好,我是魚皮。

處理 Excel 表格是開發中經常遇到的需求,比如表格合并、篩選表格中的某些行列、修改單元格數據等。

今天給大家分享一個 Java 處理表格的工具庫,不需要任何專業知識,拿來就能用,快速又輕松~

可能有同學說了,用 Python 處理表格不是更方便么?為毛用 Java 啊?

當然是因為企業中大部分后臺開發用的都是 Java!如果你要搞一個允許用戶自主上傳 Excel 進行處理的服務,那顯然直接用 Java 來實現最方便~

Easy Excel

要介紹的庫是阿里的 Easy Excel,簡單、省內存的讀寫 Excel 的開源項目。

文檔地址:https://www.yuque.com/easyexcel/doc/easyexcel

直接打開官方文檔,就能看到項目的使用說明了:

首先在項目中引入 Easy Excel(版本號以文檔中的最新版本號為主):

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

然后進入文檔的 快速開始 部分,就可以看到讀取和寫入表格數據的方法了。

下面讓我們以一個實際需求為例,試著使用一下這個庫。

需求

假設我們有這樣一個 Excel 表格:

如果想要調換 姓名列年齡列 的順序,應該怎么做呢?

讀取表格

首先要讀取原始表格中的數據。

Easy Excel 提供了兩種讀取表格的方式:創建對象的讀不創建對象的讀

創建對象的讀

如果你已知整個表格的表頭信息,比如列名(比如 “姓名”)和列的數據類型(比如字符串),那么可以創建一個對應的類,用來在 Java 中表示表格的元信息。

比如為上述表格創建 YupiData 類,代碼如下:

@Data public class YupiData {// 姓名private String name;// 年齡private Integer age;// 出生日期private Date bornDate; }

默認會根據屬性的順序來關聯表格列的順序,比如 name 對應姓名(第 0 列)、age 對應年齡(第 1 列)。

當然,你也可以使用注解的方式來指定每個屬性對應的表格列,支持指定下標和列名,代碼如下:

@Data public class YupiData {// 強制讀取下標為 2 的列(第三列)@ExcelProperty(index = 2)// 指定接受日期的格式@DateTimeFormat("yyyy/MM/dd")private Date bornDate;// 用名字去匹配,不能和其他列重復@ExcelProperty("年齡")private Integer age;@ExcelProperty("姓名")private String name; }

定義好了表格數據類,就可以開始讀取了,該庫非常貼心,提供了 同步異步 兩種讀取方式。

同步是指一次性讀取表格中的所有行,以列表的方式完整返回,再整體去處理。由于這種方式會將數據完整加載到內存中,因此只 適用于表格行數比較少 的情況。代碼如下:

/*** 同步讀取*/ public void synchronousRead() {String fileName = "魚皮的表格.xlsx";// 讀取到的數據List<YupiData> list = EasyExcel.read(fileName).head(YupiData.class).sheet().doReadSync(); }

異步方式需要定義一個 監聽器 ,每讀取一行,就要立即去處理該行數據。這樣就不需要將所有數據都加載到內存中,算一行讀一行,理論上算完了也可以丟棄。代碼如下:

/*** 定義監聽器*/ public class YupiDataListener implements ReadListener<YupiData> {/*** 每讀一行數據,都會調用一次** @param data 一行數據* @param context 上下文*/@Overridepublic void invoke(YupiData data, AnalysisContext context) {// 輸出姓名System.out.println(data.getName());} }/*** 開始讀取*/ void assynchronousRead() {String fileName = "魚皮的表格.xlsx";EasyExcel.read(fileName, YupiData.class,new YupiDataListener()).sheet().doRead(); }

不創建對象的讀

如果事先不清楚表格會有哪些列、類型如何(比如讓用戶自主上傳表格),那么可以使用 不創建對象讀 的方式,直接用 Map<Integer, String> 泛型類來接收:

List<Map<Integer, String>> list = EasyExcel.read(fileName).sheet().doReadSync(); // Map 的 key 為列下標,value 為單元格的值 for (Map<Integer, String> data : list) {... }

當然,這種讀取方式也同時支持同步和異步,可以根據需求選擇方式,靈活的一批!

寫入表格

學會讀取后,寫入表格就更簡單了,依然是先定義一個類,用來表示要寫入表格的元信息(列名、列數據類型等)。

比如要完成表格列順序調換的需求,定義表格數據類的時候,把 age 和 name 屬性的順序換一下就好了:

@Data public class YupiWriteData {// 年齡 ↑private Integer age;// 姓名 ↓private String name;// 出生日期private Date bornDate; }

然后執行 Easy Excel 的 write 方法,就完事了,代碼如下:

void doWrite() {// 已讀取和處理后的數據列表List<YupiWriteData> dataList = xxx;String fileName = "result.xlsx";EasyExcel.write(fileName, YupiWriteData.class).sheet("工作表1").doWrite(dataList); }

搞定,是不是賊簡單!

除了這個庫外,Java 處理 Excel 的庫還有很多,比如 Apache POI、Hutool 等,大家可以去試試。但我個人感覺還是 Easy Excel 更對我的胃口。


好了,是不是很簡單了,有興趣的話自己寫個表格處理程序吧~

學到的話,幫魚皮點個 唄,感謝!

總結

以上是生活随笔為你收集整理的Java 处理表格,也很轻松的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人激情五月天 | 欧美日韩一区电影 | 欧美大黄 | 日本免费一区二区三区四区 | 性感美女av在线 | 久久91久久 | 原神淫辱系列同人h | 五月天久久久久久 | 人人模人人爽 | 欧美影院一区二区三区 | 免费20分钟超爽视频 | 欧美黄色三级 | 亚洲专区第一页 | 操欧美老逼| 日韩精品2 | 亚洲自拍小视频 | 午夜久久福利 | 国产男人搡女人免费视频 | 人妻精品久久久久中文字幕69 | 成人亚洲国产 | 吸咬奶头狂揉60分钟视频 | 九一国产精品 | 嫩草免费视频 | 欧美视频一区二区三区在线观看 | 亚洲色图36p| 免费大片av | 欧美另类tv | 国产精品毛片 | 在线a免费 | 日欧一级片 | 国产h在线 | 精品在线91 | 久久午夜剧场 | 亚洲精品资源在线 | a级性生活视频 | 超级乱淫视频 | 天天射综合网站 | 国产又黄又嫩又滑又白 | 黄色三级免费网站 | 日韩第1页 | 中文字幕人妻一区二区三区 | 阿v视频在线免费观看 | 免费亚洲精品 | 一区不卡在线观看 | 纯爱无遮挡h肉动漫在线播放 | 国产私密视频 | 国产91久久婷婷一区二区 | 免费福利视频网站 | 国产精品亚洲а∨天堂免在线 | av在线资源播放 | 成人涩涩网 | 亚洲色图27p | 99人妻碰碰碰久久久久禁片 | 91亚洲欧美激情 | 日韩少妇精品 | 日韩免费久久 | 性淫bbwbbwbbw| 欧美永久 | 久草视频精品在线 | 国产草草影院ccyycom | 最新中文字幕av | 亚洲免费高清视频 | 国产精品乱码久久久久久久久 | 精品999久久久一级毛片 | 欧美寡妇性猛交 | 日本泡妞xxxx免费视频软件 | 久久久久亚洲AV | 91插插插影库永久免费 | 精品综合久久 | 国产麻豆剧果冻传媒白晶晶 | 成人丁香婷婷 | 亚洲AV成人无码网站天堂久久 | 成人做爰www看视频软件 | 毛片a级片 | 中文字幕在线视频不卡 | 国产免费黄色大片 | 超碰天天 | 俺去草| 日本一区二区久久 | 四虎影视免费观看 | 欧美黄色大片网站 | 成人自拍视频 | 少妇做爰免费理伦电影 | 日韩欧美毛片 | 狠狠搞狠狠干 | 欧美整片在线 | 正在播放久久 | 成人影视在线看 | 日本视频免费看 | 亚洲伊人久久综合 | 夜夜骑日日操 | 亚洲国产日韩一区二区 | 日本亲近相奷中文字幕 | 四虎影视免费观看 | 成人啪啪| 日本少妇裸体做爰高潮片 | 91午夜交换视频 | 少妇无内裤下蹲露大唇视频 | 欧美黄色大全 |