使用Java讀取Excel文件數(shù)據(jù)的方法詳解
通過編程方式讀取Excel數(shù)據(jù)能實現(xiàn)數(shù)據(jù)導(dǎo)入、批量處理、數(shù)據(jù)比對和更新等任務(wù)的自動化。這不僅可以提高工作效率還能減少手動處理的錯誤風(fēng)險。此外讀取的Excel數(shù)據(jù)可以與其他系統(tǒng)進行交互或集成,實現(xiàn)數(shù)據(jù)的無縫傳輸和共享,滿足特定項目的需求。本文將從以下三個方面介紹如何通過Java讀取Excel文件中的數(shù)據(jù)。
- 讀取某個單元格中的數(shù)據(jù)
- 讀取指定單元格范圍的數(shù)據(jù)
- 讀取Excel工作表中的數(shù)據(jù)
安裝免費Java庫
操作Excel的免費Java庫為 Free Spire.XLS for Java。該免費庫在讀寫 .xls 格式的 Excel 文檔時,有每個文檔 5 個工作表,每個工作表 200 行的限制。但在讀寫 .xlsx 格式的 Excel 文檔時是沒有任何限制。
我么可以從下面鏈接下載產(chǎn)品包后手動引入jar包或者直接通過Maven倉庫安裝也可。
https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html
讀取Excel數(shù)據(jù)的核心方法
要讀取Excel單元格、單元格范圍、或者Excel工作表中的數(shù)據(jù),我們需要用到Free Spire.XLS for Java庫提供的以下接口:
- Workbook類、Worksheet類:分別用于代表 Excel 工作簿、和工作簿中的工作表。
- CellRange類:用于代表某個特定的單元格或單元格區(qū)域。
- Worksheet.getCellRange(String name) 方法:獲取某個單元格或單元格區(qū)域并返回 CellRange 對象。
- Worksheet.getAllocatedRange() 方法:獲取工作表中包含數(shù)據(jù)的單元格區(qū)域,并返回 CellRange 對象。
- CellRange.getValue() 方法:獲取單元格中的數(shù)值或文本值。(如果單元格有公式,該方法會返回公式而不是公式計算的結(jié)果)
輸入文檔:
Java代碼示例
示例1 :使用Java 讀取某個單元格的數(shù)據(jù)
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadData { public static void main(String[] args) { //創(chuàng)建Workbook對象 Workbook wb = new Workbook(); //加載Excel文件 wb.loadFromFile("貨物.xlsx"); //獲取第一張工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取指定單元格 CellRange cell = sheet.getCellRange("A9"); //獲取單元格數(shù)據(jù) System.out.print("A9單元格的值為 " + cell.getValue()); } }
讀取A9單元格的值:
示例2:使用Java 讀取某個單元格范圍中的數(shù)據(jù)
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadData { public static void main(String[] args) { //創(chuàng)建Workbook對象 Workbook wb = new Workbook(); //加載Excel文件 wb.loadFromFile("貨物.xlsx"); //獲取第一張工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取指定單元格區(qū)域 CellRange range = sheet.getCellRange("A11:F15"); //遍歷行和列 for (int i = 0; i < range.getRows().length; i++) { for (int j = 0; j < range.getColumnCount(); j++) { //獲取單元格數(shù)據(jù) System.out.print(range.get(i + 11, j + 1).getValue() + " "); } System.out.println(); } } }
讀取Excel單元格范圍返回結(jié)果:
示例3:讀取Excel工作表中的數(shù)據(jù)
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadData { public static void main(String[] args) { //創(chuàng)建Workbook對象 Workbook wb = new Workbook(); //加載Excel文件 wb.loadFromFile("貨物.xlsx"); //獲取第一張工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取工作表中的數(shù)據(jù)區(qū)域 CellRange locatedRange = sheet.getAllocatedRange(); //遍歷行和列 for (int i = 0; i < locatedRange.getRows().length; i++) { for (int j = 0; j < locatedRange.getColumnCount(); j++) { //獲取單元格中的數(shù)據(jù) System.out.print(locatedRange.get(i + 1, j + 1).getValue() + " "); } System.out.println(); } } }
讀取Excel工作表數(shù)據(jù)返回結(jié)果:
到此這篇關(guān)于使用Java讀取Excel文件數(shù)據(jù)的方法詳解的文章就介紹到這了,更多相關(guān)Java讀取Excel數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Springboot接收?Form?表單數(shù)據(jù)的示例詳解
這篇文章主要介紹了Springboot接收?Form?表單數(shù)據(jù)的實例代碼,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-08-08SpringBoot整合Lucene實現(xiàn)全文檢索的詳細步驟
全文搜索(Full-Text?Search)是指對大規(guī)模存儲在計算機系統(tǒng)中的文本數(shù)據(jù)進行檢索和匹配的技術(shù),它允許用戶輸入關(guān)鍵字,然后從海量的文本數(shù)據(jù)中快速找到相關(guān)的信息,本文介紹了SpringBoot整合Lucene實現(xiàn)全文檢索的詳細步驟,需要的朋友可以參考下2024-03-03解決springboot+activemq啟動報注解錯誤的問題
這篇文章主要介紹了解決springboot+activemq啟動報注解錯誤的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07Spring中@Import的各種用法以及ImportAware接口詳解
這篇文章主要介紹了Spring中@Import的各種用法以及ImportAware接口詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10Java 中的 @SneakyThrows 注解的使用方法(簡化異常處理的利與弊)
@SneakyThrows是Lombok提供的一個注解,用于簡化Java方法中的異常處理,特別是對于檢查型異常,它允許方法拋出異常而不必顯式聲明或捕獲這些異常,本文介紹Java 中的 @SneakyThrows 注解的使用方法,感興趣的朋友一起看看吧2025-03-03