目錄
一、準備工作
二、實作步驟
三、完整程式碼
首頁 Java java教程 Java怎麼實現匯出合併Excel單元格

Java怎麼實現匯出合併Excel單元格

May 10, 2023 pm 05:16 PM
excel java

一、準備工作

在開始實作Excel匯出之前,我們需要準備以下工具與環境:

1.JDK環境

3.Apache POI函式庫

Apache POI是一個Java庫,可用來讀取和寫入Microsoft Office格式的文件,包括Excel、Word和PowerPoint等文件。我們需要在專案中引入Apache POI庫。

3.Excel範本

Excel範本是指我們要匯出的Excel檔案的樣式和格式,包括表格的列名、行高、字型、顏色等。我們可以在Excel中建立一個模板,然後將資料填入模板中。這樣可以保證匯出的Excel檔案的格式和樣式一致。

二、實作步驟

1.建立Excel檔案

首先,我們需要在Java中建立一個Excel檔案。可以使用Apache POI庫中的Workbook類別來建立Excel檔案。 Workbook類別有兩個實作類別:HSSFWorkbook和XSSFWorkbook。 HSSFWorkbook用於建立.xls格式的Excel文件,XSSFWorkbook用於建立.xlsx格式的Excel文件。我們可以根據需要選擇合適的實作類別。

下面是建立Excel檔案的程式碼:

// 创建工作簿
Workbook workbook = new HSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("Sheet1");
登入後複製

2.填入表格資料

接下來,我們需要將資料填入表格中。可以使用Apache POI庫中的Row和Cell類別來操作Excel表格。 Row表示表格中的一行,Cell表示表格中的一個儲存格。我們可以先建立表頭,然後將資料填入表格中。

下面是填充表格資料的程式碼:

// 创建表头行
Row headerRow = sheet.createRow(0);
// 创建表头单元格
Cell headerCell1 = headerRow.createCell(0);
headerCell1.setCellValue("姓名");
Cell headerCell2 = headerRow.createCell(1);
headerCell2.setCellValue("年龄");

// 填充数据
List<User> userList = getUserList();
for (int i = 0; i < userList.size(); i++) {
    User user = userList.get(i);
    Row dataRow = sheet.createRow(i + 1);
    Cell dataCell1 = dataRow.createCell(0);
    dataCell1.setCellValue(user.getName());
    Cell dataCell2 = dataRow.createCell(1);
    dataCell2.setCellValue(user.getAge());
}
登入後複製

3.合併儲存格

如果需要將表格中的某些儲存格合併,可以使用Apache POI庫中的CellRangeAddress類別來實作。 CellRangeAddress表示儲存格的合併區域,包括起始行、結束行、起始列、結束列。我們可以建立一個CellRangeAddress對象,然後將其套用到表格中的儲存格。

下面是合併儲存格的程式碼:

// 合并单元格
CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1);
sheet.addMergedRegion(region);
登入後複製

4.匯出Excel檔案

最後,我們需要將產生的Excel檔案匯出到本機或伺服器上。可以使用Java中的FileOutputStream類別將Excel檔案輸出到磁碟上。

下面是匯出Excel檔案的程式碼:

// 导出Excel文件
File file = new File("user.xls");
FileOutputStream fos = new FileOutputStream(file);
workbook.write(fos);
fos.close();
登入後複製

三、完整程式碼

public static void exportExcel() throws Exception {
    // 创建工作簿
    Workbook workbook = new HSSFWorkbook();
    // 创建工作表
    Sheet sheet = workbook.createSheet("Sheet1");

    // 创建表头行
    Row headerRow = sheet.createRow(0);
    // 创建表头单元格
    Cell headerCell1 = headerRow.createCell(0);
    headerCell1.setCellValue("姓名");
    Cell headerCell2 = headerRow.createCell(1);
    headerCell2.setCellValue("年龄");

    // 填充数据
    List<User> userList = getUserList();
    for (int i = 0; i < userList.size(); i++) {
        User user = userList.get(i);
        Row dataRow = sheet.createRow(i + 1);
        Cell dataCell1 = dataRow.createCell(0);
        dataCell1.setCellValue(user.getName());
        Cell dataCell2 = dataRow.createCell(1);
        dataCell2.setCellValue(user.getAge());
    }

    // 合并单元格
    CellRangeAddress region = new CellRangeAddress(0, 0, 0, 1);
    sheet.addMergedRegion(region);

    // 导出Excel文件
    File file = new File("user.xls");
    FileOutputStream fos = new FileOutputStream(file);
    workbook.write(fos);
    fos.close();
}

public static List<User> getUserList() {
    List<User> userList = new ArrayList<>();
    userList.add(new User("张三", 20));
    userList.add(new User("李四", 25));
    userList.add(new User("王五", 30));
    return userList;
}

public static class User {
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
登入後複製

以上是Java怎麼實現匯出合併Excel單元格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前 By 尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
4 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java 中的平方根 Java 中的平方根 Aug 30, 2024 pm 04:26 PM

Java 中的平方根

Java 中的完美數 Java 中的完美數 Aug 30, 2024 pm 04:28 PM

Java 中的完美數

Java 中的隨機數產生器 Java 中的隨機數產生器 Aug 30, 2024 pm 04:27 PM

Java 中的隨機數產生器

Java 中的阿姆斯壯數 Java 中的阿姆斯壯數 Aug 30, 2024 pm 04:26 PM

Java 中的阿姆斯壯數

Java中的Weka Java中的Weka Aug 30, 2024 pm 04:28 PM

Java中的Weka

Java 中的史密斯數 Java 中的史密斯數 Aug 30, 2024 pm 04:28 PM

Java 中的史密斯數

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

Java Spring 面試題

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

突破或從Java 8流返回?

See all articles