导出excel表 后端 工具类

@GetMapping(" /")
    @ResponseBody
    @RequiresPermissions("/")
    public void export(QueryRequest queryRequest, CsCommonrule csCommonrule, HttpServletResponse response) throws BusException {
        try {
            List<CsCommonrule> csCommonrules = this.csCommonruleService.findCsCommonrules(queryRequest, csCommonrule).getRecords();
            ExcelKit.$Export(CsCommonrule.class, response).downXlsx(csCommonrules, false);
        } catch (Exception e) {
            String message = "导出Excel失败";
            log.error(message, e);
            throw new BusException(message);
        }
    }

如上先查询数据存到list集合然后打印

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.wuwenze.poi;

import com.wuwenze.poi.exception.ExcelKitRuntimeException;
import com.wuwenze.poi.factory.ExcelMappingFactory;
import com.wuwenze.poi.handler.ExcelReadHandler;
import com.wuwenze.poi.pojo.ExcelMapping;
import com.wuwenze.poi.util.POIUtil;
import com.wuwenze.poi.xlsx.ExcelXlsxReader;
import com.wuwenze.poi.xlsx.ExcelXlsxWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;

public class ExcelKit {
    private Class<?> mClass;
    private HttpServletResponse mResponse;
    private OutputStream mOutputStream;
    private Integer mMaxSheetRecords;
    private String mCurrentOptionMode;
    private static final String MODE_EXPORT = "$MODE_EXPORT$";
    private static final String MODE_BUILD = "$MODE_BUILD$";
    private static final String MODE_IMPORT = "$MODE_IMPORT$";

    public static ExcelKit $Export(Class<?> clazz, HttpServletResponse response) {
        return new ExcelKit(clazz, response);
    }

    public void downXlsx(List<?> data, boolean isTemplate) {
        if (!this.mCurrentOptionMode.equals("$MODE_EXPORT$")) {
            throw new ExcelKitRuntimeException("请使用com.wuwenze.poi.ExcelKit.$Export(Class<?> clazz, HttpServletResponse response)构造器初始化参数.");
        } else {
            try {
                ExcelMapping excelMapping = ExcelMappingFactory.get(this.mClass);
                ExcelXlsxWriter excelXlsxWriter = new ExcelXlsxWriter(excelMapping, this.mMaxSheetRecords);
                SXSSFWorkbook workbook = excelXlsxWriter.generateXlsxWorkbook(data, isTemplate);
                String fileName = isTemplate ? excelMapping.getName() + "-导入模板.xlsx" : excelMapping.getName() + "-导出结果.xlsx";
                POIUtil.download(workbook, this.mResponse, URLEncoder.encode(fileName, "UTF-8"));
            } catch (Throwable var7) {
                throw new ExcelKitRuntimeException("downXlsx error", var7);
            }
        }
    }

    public static ExcelKit $Builder(Class<?> clazz, OutputStream outputStream) {
        return new ExcelKit(clazz, outputStream);
    }

    public void writeXlsx(List<?> data, boolean isTemplate) {
        if (!this.mCurrentOptionMode.equals("$MODE_BUILD$")) {
            throw new ExcelKitRuntimeException("请使用com.wuwenze.poi.ExcelKit.$Builder(Class<?> clazz, OutputStream outputStream)构造器初始化参数.");
        } else {
            ExcelMapping excelMapping = ExcelMappingFactory.get(this.mClass);
            ExcelXlsxWriter excelXlsxWriter = new ExcelXlsxWriter(excelMapping, this.mMaxSheetRecords);
            SXSSFWorkbook workbook = excelXlsxWriter.generateXlsxWorkbook(data, isTemplate);
            POIUtil.write(workbook, this.mOutputStream);
        }
    }

    public static ExcelKit $Import(Class<?> clazz) {
        return new ExcelKit(clazz);
    }

    public void readXlsx(File excelFile, ExcelReadHandler<?> excelReadHandler) {
        this.readXlsx(excelFile, -1, excelReadHandler);
    }

    public void readXlsx(File excelFile, Integer sheetIndex, ExcelReadHandler<?> excelReadHandler) {
        try {
            InputStream inputStream = new FileInputStream(excelFile);
            this.readXlsx((InputStream)inputStream, sheetIndex, excelReadHandler);
        } catch (Throwable var5) {
            throw new ExcelKitRuntimeException("readXlsx error", var5);
        }
    }

    public void readXlsx(InputStream inputStream, ExcelReadHandler<?> excelReadHandler) {
        this.readXlsx(inputStream, -1, excelReadHandler);
    }

    public void readXlsx(InputStream inputStream, Integer sheetIndex, ExcelReadHandler<?> excelReadHandler) {
        if (!this.mCurrentOptionMode.equals("$MODE_IMPORT$")) {
            throw new ExcelKitRuntimeException("请使用com.wuwenze.poi.ExcelKit.$Import(Class<?> clazz)构造器初始化参数.");
        } else {
            ExcelMapping excelMapping = ExcelMappingFactory.get(this.mClass);
            ExcelXlsxReader excelXlsxReader = new ExcelXlsxReader(this.mClass, excelMapping, excelReadHandler);
            if (sheetIndex >= 0) {
                excelXlsxReader.process(inputStream, sheetIndex);
            } else {
                excelXlsxReader.process(inputStream);
            }
        }
    }

    public ExcelKit setMaxSheetRecords(Integer mMaxSheetRecords) {
        this.mMaxSheetRecords = mMaxSheetRecords;
        return this;
    }

    protected ExcelKit(Class<?> clazz) {
        this(clazz, (OutputStream)null, (HttpServletResponse)null);
        this.mCurrentOptionMode = "$MODE_IMPORT$";
    }

    protected ExcelKit(Class<?> clazz, OutputStream outputStream) {
        this(clazz, outputStream, (HttpServletResponse)null);
        this.mCurrentOptionMode = "$MODE_BUILD$";
    }

    protected ExcelKit(Class<?> clazz, HttpServletResponse response) {
        this(clazz, (OutputStream)null, response);
        this.mCurrentOptionMode = "$MODE_EXPORT$";
    }

    protected ExcelKit(Class<?> clazz, OutputStream outputStream, HttpServletResponse response) {
        this.mClass = null;
        this.mResponse = null;
        this.mOutputStream = null;
        this.mMaxSheetRecords = 50000;
        this.mCurrentOptionMode = "$MODE_EXPORT$";
        this.mClass = clazz;
        this.mOutputStream = outputStream;
        this.mResponse = response;
    }

    protected ExcelKit() {
        this.mClass = null;
        this.mResponse = null;
        this.mOutputStream = null;
        this.mMaxSheetRecords = 50000;
        this.mCurrentOptionMode = "$MODE_EXPORT$";
    }
}

导出ecxel的工具类

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值