三、数据导出 - wujiuye/miniexcel GitHub Wiki

数据导出步骤

  1. 创建导出器;
  2. 创建导出监听器;
  3. 调用导出器的write方法传入导出监听器,开始导出数据;

注解方式导出

第一步:给对应的Java实体类添加注解

public class DateModel {
    @ExcelCellTitle
    private String xxxx;
    @ExcelCellTitle
    private int yyy;
    @ExcelCellTitle
    private Integer xxx;
    @ExcelCellTitle(cellNumber = 1, alias = "别名", datePattern = "yyyy-MM-dd HH", timeZone = 8)
    private Date date;
}

第二步:创建导出器

  • 写到文件
// 参数一:文件绝对路径(含文件名,但不含后缀名)
// 参数二:以什么格式导出: ExcelFileType.XLSX、ExcelFileType.XLS、ExcelFileType.CSV
AbstractExcelWriter excelWriter = AbstractExcelWriter.createExcelWriter("/tmp/miniexcel-test", ExcelFileType.XLSX);
  • 写到输出流
 AbstractExcelWriter excelWriter = AbstractExcelWriter.createExcelWriter(System.out, ExcelFileType.XLSX);

除CSV格式外,我们还可以配置每个SheetSize的大小,超过自动切换Sheet继续导出。如下:

AbstractExcelWriter excelWriter = AbstractExcelWriter.createExcelWriter("/tmp/miniexcel-test", ExcelFileType.XLSX);
excelWriter.setSheetSize(1000)
           .setBrushPageSize(1000)
           .setSheetNameFromat("Sheet{sn}");

第三步:创建导出监听器

// 第二个参数是页大小,这里其实没有意义。该参数主要用于分页查询导出
ExcelWriteListener listener = new ExcelWriteListenerAdapter<DateModel>(getTestData(), 1000) {};

第四步:导出

完成的demo代码如下:

    @Test
    public void testExport() {
        AbstractExcelWriter excelWriter = AbstractExcelWriter.createExcelWriter("/tmp/miniexcel-test", ExcelFileType.XLSX);
        excelWriter.setSheetSize(1000)
                .setBrushPageSize(1000)
                .setSheetNameFromat("Sheet{sn}");
        excelWriter.write(new ExcelWriteListenerAdapter<DateModel>(DateModel.getTestData(), 1000) {
        });
    }
⚠️ **GitHub.com Fallback** ⚠️