使用 easyExcel write 步骤;并且设置列宽

第一步:导入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>2.1.1</version>
</dependency>

第二步:创建实体类

@Data
public class ExcelData {
    // 设置excel表头名称
    @ExcelProperty("学生编号")  
    private Integer sno;

    @ExcelProperty("学生姓名")
    private String sname;
}

第三步: 创建执行main

public class ExcelTest {
    public static void main(String[] args) {
        
        // 实现 excel 写操作
        // 设置写入文件夹地址 和 文件名称
        String filename = "E:\\write.xlsx";

        // 调用easyExcel 里面的方法
EasyExcel.write(filename,ExcelData.class).sheet("stuname").doWrite(getData());
    }
    
    private static List<ExcelData> getData() {
        List<ExcelData> list = new ArrayList<>();

        for (int i=0; i<10; i++) {
            ExcelData ed = new ExcelData();
            ed.setSno(i);
            ed.setSname("lsr" + i);
            list.add(ed);
        }

        return list;
    }
}

前端处理代码

handleExport() {
      this.exportLoading = true
      const dateStr = this.dateFormat()
      const fileName = '国际运价计算引擎运维Tbl900查询迭代列表_' + dateStr + '.xlsx'
      this.queryData = this.$refs.queryCondition._data.form
      downFile(this.queryData).then(res => {
        try{
          // 将文件流转成blob形式
          const blob = new Blob([res], { type: 'application/vnd.ms-excel' })
          // 创建一个超链接,将文件流赋进去,然后实现这个超链接的单击事件
          const eLink = document.createElement('a')
          eLink.download = fileName
          eLink.style.display = 'none'
          eLink.href = URL.createObjectURL(blob)
          document.body.appendChild(eLink)
          eLink.click()
          URL.revokeObjectURL(eLink.href) // 释放URL 对象
          document.body.removeChild(eLink)
          this.$message.success("导出成功")
          this.exportLoading = false
        }
        catch(err){
          this.$message.error("导出成功")
        }
      })
    },

EasyExcel 设置行宽列高

注解形式

@Getter
@Setter
@EqualsAndHashCode
@ContentRowHeight(10)
@HeadRowHeight(20)
@ColumnWidth(25)
public class WidthAndHeightData {
    @ExcelProperty("字符串标题")
    private String string;
    @ExcelProperty("日期标题")
    private Date date;
    /**
     * 宽度为50
     */
    @ColumnWidth(50)
    @ExcelProperty("数字标题")
    private Double doubleData;
}

非注解形式

EasyExcel.write(outputStream)
    // 这里放入动态头
    .head(headNameList)
    // java以点分割要转义符
    .sheet(fileName.split("\\.")[0])
    // 注册策略
    .registerWriteHandler(new SimpleColumnWidthStyleStrategy(20)) // 简单的列宽策略,列宽20
    .registerWriteHandler(new SimpleRowHeightStyleStrategy((short)30,(short)20)) // 简单的行高策略:头行高30,内容行高20
    .doWrite(datalist);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值