通過編程方式讀取Excel數據能實現數據導入、批量處理、數據比對和更新等任務的自動化。這不僅可以提高工作效率還能減少手動處理的錯誤風險。此外讀取的Excel數據可以與其他系統進行交互或集成,實現數據的無縫傳輸和共享,滿足特定項目的需求。本文將從以下三個方面介紹如何通過Java讀取Excel文件中的數據。
- 讀取某個單元格中的數據
- 讀取指定單元格範圍的數據
- 讀取Excel工作表中的數據
安裝免費Java庫
操作Excel的免費Java庫爲 Free Spire.XLS for Java。該免費庫在讀寫 .xls 格式的 Excel 文檔時,有每個文檔 5 個工作表,每個工作表 200 行的限制。但在讀寫 .xlsx 格式的 Excel 文檔時是沒有任何限制。
我麼可以從下面鏈接下載產品包後手動引入jar包或者直接通過Maven倉庫安裝也可。
https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-JAVA.html
讀取Excel數據的核心方法:
要讀取Excel單元格、單元格範圍、或者Excel工作表中的數據,我們需要用到Free Spire.XLS for Java庫提供的以下接口:
- Workbook類、Worksheet類:分別用於代表 Excel 工作簿、和工作簿中的工作表。
- CellRange類:用於代表某個特定的單元格或單元格區域。
- Worksheet.getCellRange(String name) 方法:獲取某個單元格或單元格區域並返回 CellRange 對象。
- Worksheet.getAllocatedRange() 方法:獲取工作表中包含數據的單元格區域,並返回 CellRange 對象。
- CellRange.getValue() 方法:獲取單元格中的數值或文本值。(如果單元格有公式,該方法會返回公式而不是公式計算的結果)
輸入文檔:
Java代碼示例
示例1 :使用Java 讀取某個單元格的數據
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadData { public static void main(String[] args) { //創建Workbook對象 Workbook wb = new Workbook(); //加載Excel文件 wb.loadFromFile("貨物.xlsx"); //獲取第一張工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取指定單元格 CellRange cell = sheet.getCellRange("A9"); //獲取單元格數據 System.out.print("A9單元格的值爲 " + cell.getValue()); } }
讀取A9單元格的值:
示例2:使用Java 讀取某個單元格範圍中的數據
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadData { public static void main(String[] args) { //創建Workbook對象 Workbook wb = new Workbook(); //加載Excel文件 wb.loadFromFile("貨物.xlsx"); //獲取第一張工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取指定單元格區域 CellRange range = sheet.getCellRange("A11:F15"); //遍歷行和列 for (int i = 0; i < range.getRows().length; i++) { for (int j = 0; j < range.getColumnCount(); j++) { //獲取單元格數據 System.out.print(range.get(i + 11, j + 1).getValue() + " "); } System.out.println(); } } }
讀取Excel單元格範圍返回結果:
讀取Excel工作表中的數據
import com.spire.xls.CellRange; import com.spire.xls.Workbook; import com.spire.xls.Worksheet; public class ReadData { public static void main(String[] args) { //創建Workbook對象 Workbook wb = new Workbook(); //加載Excel文件 wb.loadFromFile("貨物.xlsx"); //獲取第一張工作表 Worksheet sheet = wb.getWorksheets().get(0); //獲取工作表中的數據區域 CellRange locatedRange = sheet.getAllocatedRange(); //遍歷行和列 for (int i = 0; i < locatedRange.getRows().length; i++) { for (int j = 0; j < locatedRange.getColumnCount(); j++) { //獲取單元格中的數據 System.out.print(locatedRange.get(i + 1, j + 1).getValue() + " "); } System.out.println(); } } }
讀取Excel工作表數據返回結果:
通過以上示例, 我們可以通過Java編程語言來讀取Excel文件,實現Excel數據的批量處理。Free Spire.XLS for Java 這個免費庫還支持生成、轉換、編輯、打印Excel文件等各種功能,有興趣可前往其中文教程進行了解。