三、数据导出 - wujiuye/miniexcel GitHub Wiki
- 创建导出器;
- 创建导出监听器;
- 调用导出器的write方法传入导出监听器,开始导出数据;
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) {
});
}