1. 控制输出流的关闭
当你使用 OutputStream 作为输出时,可以通过 autoCloseStream 参数来控制 EasyExcel 是否自动关闭输出流。默认情况下,autoCloseStream 为 false,即 EasyExcel 不会自动关闭输出流。如果设置为 true,EasyExcel 会在写入操作结束后自动关闭输出流。这在大多数情况下可以简化资源管理,减少忘记手动关闭流可能导致的资源泄露问题。
示例代码如下:
EasyExcel.write(outputStream, YourModel.class)
.autoCloseStream(false) // 或 true,根据需求设定
.sheet(“Sheet1”)
.doWrite(dataList);
2. 选择导出的列
可以通过 excludeColumnFiledNames 和 includeColumnFiledNames 方法来控制哪些列参与导出。例如,忽略某些列不导出,或者只导出指定的列。
示例代码如下:
// 忽略 date 列不导出
Set excludeColumnFiledNames = new HashSet<>();
excludeColumnFiledNames.add(“date”);
EasyExcel.write(fileName, DemoData.class)
.excludeColumnFiledNames(excludeColumnFiledNames)
.sheet(“忽略date”)
.doWrite(data());
// 只导出 date 列
Set includeColumnFiledNames = new HashSet<>();
includeColumnFiledNames.add(“date”);
EasyExcel.write(fileName, DemoData.class)
.includeColumnFiledNames(includeColumnFiledNames)
.sheet(“导出date”)
.doWrite(data());
3. 控制数字的输出格式
可以通过设置 DataFormat 或 CustomCellWriter 来控制数字的输出格式。例如,可以使用 @ExcelProperty 注解的 format 属性来指定数字的格式。
示例代码如下:
public class DemoData {
@ExcelProperty(value = “数字标题”, format = “0.00”)
private Double doubleData;
// getting setting
}
4. 使用自定义的写处理器
可以通过实现 WriteHandler 接口来自定义写入行为。例如,可以自定义单元格的样式、合并单元格等。
示例代码如下:
public class CustomWriteHandler implements WriteHandler {
@Override
public void sheet(int sheetNo, Sheet sheet) {
// 自定义 Sheet 的行为
}
@Override
public void row(int sheetNo, int sheetIndex, Row row) {
// 自定义 Row 的行为
}
@Override
public void cell(int sheetNo, int sheetIndex, Cell cell) {
// 自定义 Cell 的行为
}
}
EasyExcel.write(fileName, DemoData.class)
.registerWriteHandler(new CustomWriteHandler())
.sheet(“模板”)
.doWrite(data());
5. 控制输出文件的类型
可以通过 excelType 参数来指定输出文件的类型,例如 .xlsx 或 .xls。
示例代码如下:
EasyExcel.write(fileName, DemoData.class)
.excelType(ExcelTypeEnum.XLS)
.sheet(“模板”)
.doWrite(data());
通过以上方法,你可以灵活地控制 EasyExcel 的输出行为,以满足不同的业务需求。