2
回答
关于使用PoiRender导出excel的问题
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

@stu51 你好,想跟你请教个问题:

public class PoiRender extends Render{
 
 private static Logger log = LoggerFactory.getLogger(ExcelUtils.class);
 private final static String CONTENT_TYPE = "application/msexcel;charset=" + getEncoding();
 private List<Record> data;
 private String[] headers;
 private String[] columns;
 private String fileName;
 private String version;
 private int headerRow;
 private int cellWidth;
 
 public PoiRender(List<Record> data) {
        this.data = data;
    }


    public static PoiRender me(List<Record> data) {
        return new PoiRender(data);
    }


 @Override
 public void render() {
 response.reset();
        response.setHeader("Content-disposition", "attachment; filename=" + fileName);
        response.setContentType(CONTENT_TYPE);
        OutputStream os = null;
        try {
            os = response.getOutputStream();
            PoiExporter poi = PoiExporter.data(data);
            poi.version(version).sheetNames("sheet").headerRow(headerRow)
               .headers(headers).columns(columns)
               .cellWidth(cellWidth);
            Workbook wb =  poi.export();
            wb.write(os);
        } catch (Exception e) {
            throw new RenderException(e);
        } finally {
            try {
                if (os != null) {
                    os.flush();
                    os.close();
                }
            } catch (IOException e) {
                log.error(e.getMessage(), e);
            }


        }
 }


 public PoiRender headers(String[] headers){
 this.headers = headers;
 return this;
 }
 
 public PoiRender columns(String[] columns){
 this.columns = columns;
 return this;
 }
 
 public PoiRender fileName(String fileName) {
    this.fileName = fileName;
    return this;
 }


 public PoiRender version(String version) {
    this.version = version;
    return this;
 }
 
 public PoiRender headerRow(int headerRow) {
        this.headerRow = headerRow;
        return this;
    }
 
 public PoiRender cellWidth(int cellWidth) {
        this.cellWidth = cellWidth;
        return this;
    }
}



我调用render方法时,项目能运行,控制台不报错,但是没用excel导出。

PoiRender.me(list).headers(headerName).columns(headerKey).fileName(fileName + ".xls");



这个是调用

举报
JerryGHH
发帖于2年前 2回/725阅
顶部