Java打包导出Excel
在日常开发中,经常会遇到需要将数据导出到Excel表格的需求。Java提供了许多不同的库和工具,使得我们可以方便地生成和导出Excel文件。本文将介绍一种使用Apache POI库来实现Java打包导出Excel的方法,并提供代码示例。
Apache POI简介
Apache POI是一个开源的Java库,用于处理各种Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。它提供了一组Java类和方法,可以轻松地读取、写入和操作Excel文件。在本文中,我们将重点介绍POI的Excel部分。
准备工作
在开始之前,我们需要确保已经安装了Java环境,并下载并引入Apache POI库。可以从POI的官方网站(
创建Excel文件
要创建一个新的Excel文件,我们需要创建一个Workbook对象,并在其中创建一个Sheet对象。以下是一个简单的示例,演示如何创建一个包含标题和数据的Excel文件:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelExporter {
public static void main(String[] args) {
try (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("年龄");
Cell headerCell3 = headerRow.createCell(2);
headerCell3.setCellValue("性别");
// 创建数据行
Row dataRow = sheet.createRow(1);
Cell dataCell1 = dataRow.createCell(0);
dataCell1.setCellValue("张三");
Cell dataCell2 = dataRow.createCell(1);
dataCell2.setCellValue(25);
Cell dataCell3 = dataRow.createCell(2);
dataCell3.setCellValue("男");
// 将Workbook对象写入文件
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
在上面的示例中,我们创建了一个XSSFWorkbook对象,它表示一个Excel文件。然后,我们在该文件中创建一个名为"Sheet1"的Sheet对象,并在其中创建标题行和数据行。最后,我们将Workbook对象写入文件。
导出Excel文件
要导出Excel文件,我们需要先从数据源中获取数据,并将其填充到Excel文件中的相应位置。以下是一个简单的示例,演示如何将一个包含学生信息的列表导出到Excel文件中:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.ArrayList;
import java.util.List;
public class ExcelExporter {
public static void main(String[] args) {
// 模拟数据源
List<Student> students = new ArrayList<>();
students.add(new Student("张三", 25, "男"));
students.add(new Student("李四", 23, "女"));
students.add(new Student("王五", 22, "男"));
try (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("年龄");
Cell headerCell3 = headerRow.createCell(2);
headerCell3.setCellValue("性别");
// 填充数据
int rowNum = 1;
for (Student student : students) {
Row dataRow = sheet.createRow(rowNum++);
Cell dataCell1 = dataRow.createCell(0);
dataCell1.setCellValue(student.getName());
Cell dataCell2 = dataRow.createCell(1);
dataCell2.setCellValue(student.getAge());
Cell dataCell3 = dataRow.createCell(2);
dataCell3.setCellValue(student.getGender());
}
// 将Workbook对象写入文件
try (FileOutputStream outputStream = new FileOutputStream("output.xlsx")) {
workbook.write(outputStream);
}
} catch (IOException e) {
e.printStackTrace();
}
}
static class Student {
private String name;
private int age;
private String