用Java生成Excel表格的方法及示例

简介

在日常工作中,我们经常需要将数据以Excel的形式进行展示和分析。如果数据量较大,手动输入很不方便且容易出错。而使用Java编程语言可以很方便地生成Excel表格,并且可以自定义样式、格式等。

本文将介绍如何使用Java生成Excel表格,包括创建表格、设置表头、填充数据、设置样式和格式等。同时,还会使用饼状图来展示数据,并使用流程图展示整个生成流程。

准备工作

在开始之前,我们需要准备以下环境和工具:

  1. Java开发环境(JDK)
  2. Apache POI库
  3. IDE(例如Eclipse、IntelliJ IDEA等)

Apache POI是一个用于操作各种Microsoft Office格式文件的Java库,可以用来创建、读取和修改Excel、Word和PowerPoint等文件。

你可以通过以下方式引入Apache POI库:

Maven项目:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

Gradle项目:

implementation 'org.apache.poi:poi:4.1.2'
implementation 'org.apache.poi:poi-ooxml:4.1.2'

示例代码

下面是一个示例代码,演示如何使用Java生成Excel表格:

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

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

public class ExcelGenerator {

    public static void main(String[] args) {
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();

        // 创建工作表
        Sheet sheet = workbook.createSheet("Sheet1");

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

        // 填充数据
        Row dataRow1 = sheet.createRow(1);
        Cell dataCell1 = dataRow1.createCell(0);
        dataCell1.setCellValue("张三");
        Cell dataCell2 = dataRow1.createCell(1);
        dataCell2.setCellValue(20);

        Row dataRow2 = sheet.createRow(2);
        Cell dataCell3 = dataRow2.createCell(0);
        dataCell3.setCellValue("李四");
        Cell dataCell4 = dataRow2.createCell(1);
        dataCell4.setCellValue(25);

        // 设置样式
        CellStyle headerCellStyle = workbook.createCellStyle();
        Font headerFont = workbook.createFont();
        headerFont.setBold(true);
        headerCellStyle.setFont(headerFont);
        headerCell1.setCellStyle(headerCellStyle);
        headerCell2.setCellStyle(headerCellStyle);

        // 保存文件
        try (FileOutputStream outputStream = new FileOutputStream("data.xlsx")) {
            workbook.write(outputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

上述代码首先创建一个工作簿,然后创建一个工作表,并设置表头和数据。接着,设置表头的样式,最后将工作簿保存为一个Excel文件。

数据展示

除了生成Excel表格,我们还可以使用饼状图来展示数据。以下是一个使用Apache POI库生成饼状图的示例代码:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xddf.usermodel.chart.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

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

public class PieChartGenerator {

    public static void main(String[] args) {
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        // 创建数据表
        Row headerRow = sheet.createRow(0);
        Cell headerCell1 = headerRow.createCell(0);
        headerCell1.setCellValue("地区");
        Cell headerCell2 = headerRow.createCell(1);
        headerCell2.setCellValue("销售额");

        Row dataRow1 = sheet.createRow(1);
        Cell dataCell1 = dataRow1.createCell(0);
        dataCell1.setCellValue("华东");
        Cell dataCell2 = dataRow1.createCell(1);
        dataCell2.setCellValue(5000);

        Row dataRow2 = sheet.createRow(2);
        Cell data