21xrx.com
2025-03-24 03:13:24 Monday
文章检索 我的文章 写文章
Java代码实现Excel文件导出
2023-06-16 19:45:10 深夜i     --     --
Java Excel导出 POI库 数据填充

在企业应用中,经常需要对数据进行导出,Excel是一种非常常见的数据导出方式之一。本文将讲解如何在Java中通过POI库实现对Excel文件的导出。

1. 引入POI库

在maven项目中,我们可以在pom.xml文件中添加以下依赖:

org.apache.poi
 
  
  poi
 
  
  3.15
 

  
  org.apache.poi
 
 
  poi-ooxml
 
 
  3.15

2. 定义Excel文件结构

首先我们需要定义Excel文件的结构,例如表格的列名和列宽等。这里我们可以使用POI库中的XSSFWorkbook和XSSFSheet类来完成。

XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("students");
// 设置列名
String[] headers = "ID";
Row headerRow = sheet.createRow(0); // 创建行
for (int i = 0; i < headers.length; i++) {
  Cell cell = headerRow.createCell(i);
  cell.setCellValue(headers[i]);
}
// 设置列宽
sheet.setColumnWidth(0, 256 * 10);
sheet.setColumnWidth(1, 256 * 20);
sheet.setColumnWidth(2, 256 * 10);
sheet.setColumnWidth(3, 256 * 10);

3. 填充数据

接下来我们需要将数据填充到表格中,下面是一个示例:


List students = getStudents(); // 获取学生列表

int rowNum = 1;

for (Student student : students) {

  Row row = sheet.createRow(rowNum++);

  row.createCell(0).setCellValue(student.getId());

  row.createCell(1).setCellValue(student.getName());

  row.createCell(2).setCellValue(student.getAge());

  row.createCell(3).setCellValue(student.getGender());

}

4. 导出文件

最后,我们将数据写入到Excel文件中并导出,代码如下:


String filename = "students.xlsx";

FileOutputStream out = new FileOutputStream(filename);

workbook.write(out);

out.close();

workbook.close();

完整代码如下:


public class ExcelExporter {

  public void export() {

    XSSFWorkbook workbook = new XSSFWorkbook();

    XSSFSheet sheet = workbook.createSheet("students");

    // 设置列名

    String[] headers = "Age";

    Row headerRow = sheet.createRow(0); // 创建行

    for (int i = 0; i < headers.length; i++) {

      Cell cell = headerRow.createCell(i);

      cell.setCellValue(headers[i]);

    }

    // 设置列宽

    sheet.setColumnWidth(0, 256 * 10);

    sheet.setColumnWidth(1, 256 * 20);

    sheet.setColumnWidth(2, 256 * 10);

    sheet.setColumnWidth(3, 256 * 10);

    // 填充数据

    List students = getStudents(); // 获取学生列表

    int rowNum = 1;

    for (Student student : students) {

      Row row = sheet.createRow(rowNum++);

      row.createCell(0).setCellValue(student.getId());

      row.createCell(1).setCellValue(student.getName());

      row.createCell(2).setCellValue(student.getAge());

      row.createCell(3).setCellValue(student.getGender());

    }

    // 导出文件

    String filename = "students.xlsx";

    FileOutputStream out = new FileOutputStream(filename);

    workbook.write(out);

    out.close();

    workbook.close();

  }

}

  
  

评论区