Java导出Excel表格设置格式

在现代软件开发中,数据表格的导出功能是一个非常常见且重要的需求。Java作为一门广泛使用的编程语言,提供了多种库来生成和操作Excel文件。在本篇文章中,我们将探讨如何使用Apache POI库导出 Excel 表格,并通过示例代码来展示如何设置格式、添加样式。

Apache POI简介

Apache POI是一个开源的Java库,可以读写Microsoft Office格式的文档,包括Excel(XLS和XLSX)和Word等。它为开发者提供了一组丰富的API,能够对Excel文件进行灵活的操作。

在开始之前,请确保你的项目中已经加入了Apache POI的依赖。对于Maven项目,请在pom.xml中添加以下依赖:

<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.xmlbeans</groupId>
    <artifactId>xmlbeans</artifactId>
    <version>5.1.1</version>
</dependency>

创建Excel表格并设置格式

下面的示例代码展示了如何创建一个Excel表格,并为其设置样式和格式。

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

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelExportExample {
    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook(); // 创建Workbook实例
        Sheet sheet = workbook.createSheet("示例表格"); // 创建Sheet

        // 创建表头
        Row headerRow = sheet.createRow(0);
        String[] columns = {"姓名", "年龄", "性别", "成绩"};
        for (int i = 0; i < columns.length; i++) {
            Cell cell = headerRow.createCell(i);
            cell.setCellValue(columns[i]);
            // 设置表头样式
            CellStyle style = workbook.createCellStyle();
            style.setFillForegroundColor(IndexedColors.LIGHT_BLUE.getIndex());
            style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
            Font font = workbook.createFont();
            font.setBold(true);
            style.setFont(font);
            cell.setCellStyle(style);
        }

        // 创建数据行
        Object[][] data = {
                {"张三", 20, "男", 85},
                {"李四", 22, "女", 90},
                {"王五", 21, "男", 78}
        };

        int rowNum = 1;
        for (Object[] rowData : data) {
            Row row = sheet.createRow(rowNum++);
            int colNum = 0;
            for (Object field : rowData) {
                Cell cell = row.createCell(colNum++);
                cell.setCellValue(field.toString());
            }
        }

        // 设置列宽
        for (int i = 0; i < columns.length; i++) {
            sheet.autoSizeColumn(i);
        }

        // 写入Excel文件
        try (FileOutputStream fileOut = new FileOutputStream("example.xlsx")) {
            workbook.write(fileOut);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                workbook.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        System.out.println("Excel文件导出成功!");
    }
}

每步解析

  • 创建Workbook和Sheet:Workbook是Excel工作簿的高级抽象,Sheet表示工作簿中的一张表格。
  • 创建表头:使用RowCell对象创建表头,并设置样式,比如背景颜色和字体。
  • 创建数据行:通过循环将数据填充到表格中,同时可以根据需要设置单元格内容格式。
  • 设置列宽:使用autoSizeColumn方法根据内容自动调整列宽。
  • 写入文件:使用FileOutputStream将工作簿写入到文件中,并在最后关闭资源。

甘特图示例

在进行项目管理时,甘特图是一个非常有用的工具,可以用于展示项目的进度。以下是使用 Mermaid 语法创建的甘特图示例:

gantt
    title 项目进度计划
    dateFormat  YYYY-MM-DD
    section 分析
    需求分析          :a1, 2023-10-01, 30d
    设计              :after a1  , 20d
    section 开发
    编码              :2023-11-01  , 40d
    测试              :2023-12-01  , 20d
    section 部署
    发布              :2023-12-21  , 15d

总结

通过本文的示例,我们学习了如何使用Apache POI库在Java中导出并设置Excel 表格的格式。从创建Excel文件到设置样式和写入数据,都展示了实际开发中常用的操作方法。希望大家能够灵活运用这些知识,提升项目的开发效率。此外,掌握项目管理工具如甘特图,将对项目进度的跟踪和控制大有裨益!