21xrx.com
2024-11-22 13:26:26 Friday
登录
文章检索 我的文章 写文章
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();

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复