Java 讀取 Excel 文件教學:從入門到實踐

「學習如何使用Java程式碼來讀取Excel文件。這篇教學詳細介紹了使用Apache POI庫的基本步驟,幫助你輕鬆掌握資料讀取技能。」

讓資訊整合更靈活

記錄、協作、成長 — Notion帶來比Excel更靈活的工作方式!
免費使用

200+模板自動化工作流程

從數據到成果,只需一步 — 用Monday代替Excel,效率倍增!
免費使用

AI智能團隊協作

AI驅動的ClickUp超越Excel,讓工作更精準快速!
免費使用

導言

在Java中讀取Excel文件是一個常見的需求,這可以幫助我們自動化處理大量的數據。Apache POI是一個強大的Java庫,可以用來讀取和寫入Microsoft Office文件,包括Excel。本文將詳細介紹如何在Java中使用Apache POI來讀取Excel文件。

準備工作

添加Maven依賴

首先,我們需要在專案的pom.xml文件中添加Apache POI的依賴。以下是需要添加的Maven依賴:


<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>5.2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>5.2.3</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-collections4</artifactId>
    <version>4.4</version>
</dependency>

讀取Excel文件

建立Java Class

我們首先需要創建一個Java類,並在其中編寫代碼來讀取Excel文件。以下是一個簡單的Java Class範本:


import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ExcelReader {

    public static void main(String[] args) {
        String excelFilePath = "path_to_your_excel_file.xlsx";
        try {
            FileInputStream fis = new FileInputStream(new File(excelFilePath));
            Workbook workbook = new XSSFWorkbook(fis);
            Sheet sheet = workbook.getSheetAt(0);
            
            for (Row row : sheet) {
                for (Cell cell : row) {
                    switch (cell.getCellType()) {
                        case STRING:
                            System.out.print(cell.getStringCellValue() + "t");
                            break;
                        case NUMERIC:
                            if (DateUtil.isCellDateFormatted(cell)) {
                                System.out.print(cell.getDateCellValue() + "t");
                            } else {
                                System.out.print(cell.getNumericCellValue() + "t");
                            }
                            break;
                        case BOOLEAN:
                            System.out.print(cell.getBooleanCellValue() + "t");
                            break;
                        case FORMULA:
                            System.out.print(cell.getCellFormula() + "t");
                            break;
                        default:
                            System.out.print(" t");
                            break;
                    }
                }
                System.out.println();
            }

            workbook.close();
            fis.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

解析Excel數據

這段代碼展示了如何讀取Excel文件的每一個sheet、row和cell。代碼會先打開指定路徑的Excel文件,然後遍歷每一個行和列的數據,根據不同的數據類型輸出相應的值。

支持多種Excel格式

上面的例子只展示了如何讀取XLSX(Excel 2007及以後的版本)文件。如果你需要處理XLS(Excel 97-2003)文件,代碼中需要進行一些修改。


import org.apache.poi.hssf.usermodel.HSSFWorkbook;

FileInputStream fis = new FileInputStream(new File(excelFilePath));
Workbook workbook;
if (excelFilePath.endsWith("xlsx")) {
    workbook = new XSSFWorkbook(fis);
} else if (excelFilePath.endsWith("xls")) {
    workbook = new HSSFWorkbook(fis);
} else {
    throw new IllegalArgumentException("The specified file is not Excel file");
}

結語

通過本文的介紹,相信大家已經掌握了如何使用Java和Apache POI來讀取Excel文件的基本方法。更多高级功能和配置選項,可以參照Apache POI的官方文檔以進一步學習和應用。如果遇到任何問題,歡迎參考Apache POI的官方文檔或社群資源,祝大家學習愉快。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *