easyExcel格式

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>easyexcel</artifactId>

<version>2.2.4</version>

</dependency>

直接在实体类添加注解

@ColumnWidth(25)
@ExcelProperty("表头")
public static void download(HttpServletResponse response, String fileName, String sheetName,
    Class<?> clazz, List<?> data) throws IOException {
  fileName = StringUtils.isBlank(fileName) ? "文件" : fileName;
  sheetName = StringUtils.isBlank(sheetName) ? "sheet1" : sheetName;

  // 这里注意 有同学反应使用swagger 会导致各种问题,请直接用浏览器或者用postman
  response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
  response.setCharacterEncoding("utf-8");
  // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
  fileName = URLEncoder.encode(fileName, "UTF-8").replace("\\+", "%20");
  response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
  EasyExcelFactory.write(response.getOutputStream(), clazz).sheet(sheetName).doWrite(data);
}

自定义设置表头、数据、单元格长度

 public static void PartitionEnergyAnalysis(HttpServletResponse response, String fileName,
    String sheetName,
    List<PartitionEnergyAnalysisDTO> data,Integer type) {
  try {
    response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
    response.setCharacterEncoding("utf-8");
    fileName = URLEncoder.encode(fileName, "UTF-8").replace("\\+", "%20");
    response
        .setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
    List<List<String>> names = new ArrayList<>();
    List<List<String>> values = new ArrayList<>();
      names.add(Arrays.asList("分项名称"));
      names.add(Arrays.asList("时间"));
      names.add(Arrays.asList("本项用能"));
      names.add(Arrays.asList("上一年同期用能"));
      names.add(Arrays.asList("同比"));
      if(TimeDimensionEnum.Hour.getDimension()==type){
        names.add(Arrays.asList("上一小时用能"));
      }else if(TimeDimensionEnum.DAY.getDimension()==type){
        names.add(Arrays.asList("昨日用能"));
      }else if(TimeDimensionEnum.MONTH.getDimension()==type){
        names.add(Arrays.asList("上一月用能"));
      }
      names.add(Arrays.asList("环比"));
    ExcelWriterBuilder writerBuilder = EasyExcel.write(response.getOutputStream())
        .head(names)
        .registerWriteHandler(new SimpleColumnWidthStyleStrategy(25));
    ExcelWriterSheetBuilder sheetBuilder = writerBuilder.sheet(sheetName);
    sheetBuilder.doWrite(values);
  } catch (Exception e) {
    throw new ServiceException(e.getMessage());
  }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值