使用Java讀取Excel文件數(shù)據(jù)的方法詳解
通過編程方式讀取Excel數(shù)據(jù)能實(shí)現(xiàn)數(shù)據(jù)導(dǎo)入、批量處理、數(shù)據(jù)比對和更新等任務(wù)的自動化。這不僅可以提高工作效率還能減少手動處理的錯誤風(fēng)險(xiǎn)。此外讀取的Excel數(shù)據(jù)可以與其他系統(tǒng)進(jìn)行交互或集成,實(shí)現(xiàn)數(shù)據(jù)的無縫傳輸和共享,滿足特定項(xiàng)目的需求。本文將從以下三個方面介紹如何通過Java讀取Excel文件中的數(shù)據(jù)。
- 讀取某個單元格中的數(shù)據(jù)
- 讀取指定單元格范圍的數(shù)據(jù)
- 讀取Excel工作表中的數(shù)據(jù)
安裝免費(fèi)Java庫
操作Excel的免費(fèi)Java庫為 Free Spire.XLS for Java。該免費(fèi)庫在讀寫 .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ù)值或文本值。(如果單元格有公式,該方法會返回公式而不是公式計(jì)算的結(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)文章
解決spring boot hibernate 懶加載的問題
這篇文章主要介紹了解決spring boot hibernate 懶加載的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Scheduled如何會在上次任務(wù)執(zhí)行完才會執(zhí)行下次任務(wù)
這篇文章主要介紹了Scheduled如何會在上次任務(wù)執(zhí)行完才會執(zhí)行下次任務(wù)問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
微信java開發(fā)之實(shí)現(xiàn)微信主動推送消息
這篇文章主要介紹了微信開發(fā)過程中的使用java實(shí)現(xiàn)微信主動推送消息示例,需要的朋友可以參考下2014-03-03
Java通過JsApi方式實(shí)現(xiàn)微信支付
本文講解了Java如何實(shí)現(xiàn)JsApi方式的微信支付,代碼內(nèi)容詳細(xì),文章思路清晰,需要的朋友可以參考下2015-07-07
Java編程實(shí)現(xiàn)的二維數(shù)組轉(zhuǎn)置功能示例
這篇文章主要介紹了Java編程實(shí)現(xiàn)的二維數(shù)組轉(zhuǎn)置功能,結(jié)合實(shí)例形式分析了Java二維數(shù)組的遍歷、運(yùn)算、賦值等實(shí)現(xiàn)轉(zhuǎn)置的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
解決java.sql.SQLException:The?server?time?zone?value?&apo
這篇文章主要介紹了解決java.sql.SQLException:The?server?time?zone?value?'?D1ú±ê×?ê±??'?is?unrecognized問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03
Java 普通代碼塊靜態(tài)代碼塊執(zhí)行順序(實(shí)例講解)
下面小編就為大家?guī)硪黄狫ava 普通代碼塊靜態(tài)代碼塊執(zhí)行順序(實(shí)例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-08-08

