用Java生成Excel表格的方法及示例
简介
在日常工作中,我们经常需要将数据以Excel的形式进行展示和分析。如果数据量较大,手动输入很不方便且容易出错。而使用Java编程语言可以很方便地生成Excel表格,并且可以自定义样式、格式等。
本文将介绍如何使用Java生成Excel表格,包括创建表格、设置表头、填充数据、设置样式和格式等。同时,还会使用饼状图来展示数据,并使用流程图展示整个生成流程。
准备工作
在开始之前,我们需要准备以下环境和工具:
- Java开发环境(JDK)
- Apache POI库
- 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