返回

excel模板导出遇坑指南

前端





## 导入autopoi库

autopoi是Java中一个流行的库,用于处理Microsoft Office格式的文件,包括Excel、Word和PowerPoint。JEECG-BOOT框架使用了autopoi库来导出Excel表格。

在使用autopoi库之前,需要先将其导入项目中。可以在项目的pom.xml文件中添加如下依赖:

```xml
<dependency>
  <groupId>com.github.autopoi</groupId>
  <artifactId>autopoi</artifactId>
  <version>1.3.5</version>
</dependency>

使用autopoi导出Excel表格

JEECG-BOOT框架提供了JEECGTools工具类,其中包含了导出Excel表格的方法。该方法的签名如下:

public static void exportExcel(List<?> list, Class<?> pojoClass, String title, String sheetName, OutputStream out)

第一个参数是需要导出的数据列表,第二个参数是数据的POJO类,第三个参数是Excel表格的标题,第四个参数是Excel表格的sheet名称,第五个参数是Excel表格的输出流。

例如,如果要导出一个名为“学生信息”的Excel表格,可以这样调用exportExcel方法:

List<Student> studentList = studentService.findAll();
JEECGTools.exportExcel(studentList, Student.class, "学生信息", "学生信息", response.getOutputStream());

在表格尾部添加签字人

在JEECG-BOOT框架中,默认情况下,导出的Excel表格中不会包含签字人信息。如果需要在表格尾部添加签字人,可以在导出的数据列表中添加一个额外的POJO类,该类包含签字人的相关信息。

例如,可以创建一个名为Signer的POJO类,其中包含namepositionsignature三个字段,分别对应签字人的姓名、职位和签名。

public class Signer {
  private String name;
  private String position;
  private String signature;
  // 省略getter和setter方法
}

然后,在导出的数据列表中,除了原有的数据之外,还可以添加一个Signer类型的对象,该对象包含签字人的信息。

List<Object> exportDataList = new ArrayList<>();
exportDataList.addAll(studentList);
exportDataList.add(new Signer("张三", "校长", "张三的签名"));

最后,在调用exportExcel方法时,将exportDataList作为第一个参数传递即可。

JEECGTools.exportExcel(exportDataList, Student.class, "学生信息", "学生信息", response.getOutputStream());

踩坑记录

在使用JEECG-BOOT框架导出Excel表格时,可能会遇到一些坑。这里列举一些常见的踩坑点:

  • 导出的表格中没有数据。

    这种情况通常是由于导出的数据列表为空导致的。确保导出的数据列表不为空,并且数据类型与POJO类匹配。

  • 导出的表格中出现乱码。

    这种情况通常是由于导出的数据中包含了特殊字符导致的。在导出数据之前,需要对数据进行转码处理。

  • 导出的表格中没有签字人信息。

    这种情况通常是由于导出的数据列表中没有包含签字人的信息导致的。确保导出的数据列表中包含了一个Signer类型的对象,该对象包含签字人的相关信息。

总结

本文介绍了如何在JEECG-BOOT框架中导出Excel表格,并在表格尾部添加签字人信息。还列举了一些常见的踩坑点。希望本文能帮助您避免在使用JEECG-BOOT框架时遇到这些坑。