隨著資訊化的發展,資料處理的重要性不斷凸顯。而對企業和個人而言,Excel 工作表已成為日常工作中最常使用的資料處理方式。然而,Excel 工作表雖然容易使用,但隨著資料量和處理需求的增加,普通的 Excel 處理方法往往難以滿足實際應用需求。此時,Java API 開發中使用 Apache POI 函式庫進行 Excel 處理便成為了優秀的選擇。
一、Apache POI 簡介
Apache POI(Poor Obfuscation Implementation)是一個免費的Java 函式庫,用於處理和操作Microsoft Office 格式的文件,其中包括Word、Excel 和PowerPoint 等文件。透過 Apache POI,Java 程式設計人員可以輕鬆讀取、編寫和操作 Office 文件。
Apache POI 大致可分為三個部分:
本篇文章主要著重在 HSSF 和 XSSF 的使用。
二、POI 的安裝
在使用 Apache POI 進行 Excel 處理前,我們需要先安裝該程式庫。 Apache POI 的安裝較簡單,只需要下載其最新版本的 jar 包,並將其新增至專案的 classpath 即可。建議使用 Maven 或 Gradle 等工具進行 POI 的引入,這可以避免因版本衝突等問題而導致的異常。
三、讀取 Excel 檔案
讀取 Excel 檔案是 Apache POI 應用中最基本的操作之一。下面是讀取 xlsx 檔案的範例程式碼。
public static void readXlsx(String filePath) throws IOException { FileInputStream fis = new FileInputStream(filePath); XSSFWorkbook workbook = new XSSFWorkbook(fis); // 创建工作簿 XSSFSheet sheet = workbook.getSheetAt(0); // 获取第一个工作表 int rowStartIndex = sheet.getFirstRowNum(); // 获取第一行的行号 int rowEndIndex = sheet.getLastRowNum(); // 获取最后一行的行号 for (int i = rowStartIndex; i <= rowEndIndex; i++) { // 循环行 XSSFRow row = sheet.getRow(i); // 获取当前行 if (row == null) { // 若为空行则跳过 continue; } int cellStartIndex = row.getFirstCellNum(); // 获取第一列的列号 int cellEndIndex = row.getLastCellNum() - 1; // 获取最后一列的列号 for (int j = cellStartIndex; j <= cellEndIndex; j++) { // 循环列 XSSFCell cell = row.getCell(j); // 获取当前单元格 String cellValue = cell.getStringCellValue(); // 获取当前单元格的值 System.out.print(cellValue + " "); // 输出到控制台 } System.out.println(); } workbook.close(); // 关闭工作簿 fis.close(); // 关闭输入流 }
在這段程式碼中,我們首先使用 FileInputStream 開啟 xlsx 文件,並利用 XSSFWorkbook 建立工作簿。然後,我們取得第一個工作表,並使用循環逐行和逐列讀取檔案中的內容,將每個儲存格的值輸出到控制台。最後,我們需要關閉工作簿和輸入流來釋放資源。
讀取 xls 檔案與讀取 xlsx 檔案基本上相同,只需要將 XSSF 相關的程式碼改成 HSSF 就可以了。
四、寫入 Excel 檔案
寫入 Excel 檔案也是 Apache POI 應用程式中常用的操作之一。下面是寫入 xlsx 檔案的範例程式碼。
public static void writeXlsx(String filePath) throws IOException { XSSFWorkbook workbook = new XSSFWorkbook(); // 创建工作簿 XSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建工作表 XSSFRow row0 = sheet.createRow(0); // 创建第一行 XSSFCell cell00 = row0.createCell(0); // 创建第一个单元格 cell00.setCellValue("姓名"); // 设置单元格的值 XSSFCell cell01 = row0.createCell(1); // 创建第二个单元格 cell01.setCellValue("年龄"); // 设置单元格的值 XSSFRow row1 = sheet.createRow(1); // 创建第二行 XSSFCell cell10 = row1.createCell(0); // 创建第一个单元格 cell10.setCellValue("张三"); // 设置单元格的值 XSSFCell cell11 = row1.createCell(1); // 创建第二个单元格 cell11.setCellValue(20); // 设置单元格的值 XSSFRow row2 = sheet.createRow(2); // 创建第三行 XSSFCell cell20 = row2.createCell(0); // 创建第一个单元格 cell20.setCellValue("李四"); // 设置单元格的值 XSSFCell cell21 = row2.createCell(1); // 创建第二个单元格 cell21.setCellValue(25); // 设置单元格的值 FileOutputStream fos = new FileOutputStream(filePath); workbook.write(fos); // 输出文件 workbook.close(); // 关闭工作簿 fos.close(); // 关闭输出流 }
在這段程式碼中,我們建立了一個 xlsx 文件,並在其中建立了一個名為 "Sheet1" 的工作表。接著,我們在表格中新增了三行數據,每行分別包含兩個儲存格。最後,我們將檔案輸出到指定的檔案路徑,並關閉工作簿和輸出流來釋放資源。
寫入 xls 檔案與寫入 xlsx 檔案基本上相同,只需要將 XSSF 相關的程式碼改成 HSSF 就可以了。
五、總結
透過本文的解說,讀者可以初步了解 Apache POI 在 Java API 開發中的使用,特別是在 Excel 檔案處理上的應用。無論是讀取 Excel 文件還是寫入 Excel 文件,Apache POI 都提供了易於使用的接口,使得 Java 程式設計人員能夠輕鬆地進行 Excel 文件的操作。同時,Apache POI 也支援 Word 和 PowerPoint 等 Office 文件的處理,是 Java 開發人員必備的工具庫。
以上是Java API 開發中使用 Apache POI 進行 Excel 處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!