EasyExcel+mybatisPlus流式查询导出多列excel

@Data
public class ExportParamVO  {
   
   }
/**
 * 不带参数,有返回值 T get();
 * @param <T> 返回值类型
 */
@EqualsAndHashCode(callSuper=false)
@Builder
@Data
public class CommonExportParamVO<T> extends ExportParamVO {
   
   
    private String sheetName;
    private Class<?> clazz;
    private Supplier<T> supplier;
}
/**
 * 传一个参数带一个返回值 R apply(T t)
 * @param <T> 请求参数
 * @param <R> 返回值类型
 */
@EqualsAndHashCode(callSuper=false)
@Builder
@Data
public class FunctionExportParamVO<T,R> extends ExportParamVO {
   
   
    private String sheetName;
    private Class<?> clazz;
    private T query;
    private Function<T, R> function;
}

/**
 * 流式导出参数,带俩参数,无返回值 void accept(T t, U u)
 * @param <T> 查询参数类型
 */
@EqualsAndHashCode(callSuper=false)
@Builder
@Data
public class StreamExportParamVO<T> extends ExportParamVO  {
   
   
    private String sheetName;
    private Class<?> clazz;
    private BiConsumer<T, ResultHandler> consumer;
    private T query;
}

 public static void exportMultiSheetExcel(HttpServletResponse response, String fileName, ExportParamVO... vo) {
   
   
        exportMultiSheetExcel(response, fileName, Lists.newArrayList(vo));
    }

    public static <T, R> void exportMultiSheetExcel(HttpServletResponse response, String fileName, List<ExportParamVO> voList) {
   
   
        StopWatch stopWatch = new StopWatch();
        stopWatch.start();
        try (ServletOutputStream os = response.getOutputStream();
             ExcelWriter excelWriter = EasyExcel
                     .write(os)
                     .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                     .registerConverter(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值