说明

EasyExcel是3.x.x 版本的

参数1就是Excel列的索引,从0开始
sheet.setColumnWidth(1, 5000);

setColumnWidth(i,j)函数中,i是列的下标,从0开始,j是列的宽度,单位是1/256个字符宽度,所以代码中要乘以256,两个参数都必须是整数

列宽计算逻辑:以下标为1的列的宽度计算逻辑说明下,正常情况下设置的列宽是33乘以256,但实际上我们生成的excel中列宽是32.22,因为字体样式、大小以及单元格边框等占用额外的像素,所以实际的列宽比代码中设置的列宽要小0.78英寸(excel中的列宽单位是英寸),代码中设置的33也是英寸单位,那么实际我们需要设置成33.78英寸,但33.78乘以256是Double类型的数值,setColumnWidth的第二个参数必须是整数,所以在33.78*256=8647.68的基础上向上取整为8648

也需要注意的是:我用的是office365版本的excel,而不同版本的excel以及字体、单元格边框设置等因素都会影响到excel最终的列宽,可能不是上面提到的0.78的误差值,所以大家需要根据自己的情况来更改这个误差值,不能直接把这个误差值照搬到自己的代码中。

代码示例

String fileName = "/Users/Downloads/" + "simpleWrite" + System.currentTimeMillis() + ".xlsx";
EasyExcel.write(fileName, HcInfoOperateLogExcelExportDTO.class)
//getAbstractColumnWidthStyleStrategy() 逻辑是手动设置列宽逻辑.registerWriteHandler(getAbstractColumnWidthStyleStrategy()).sheet("模板").doWrite(() -> {// 分页查询数据return pageList;});

主要逻辑

private AbstractColumnWidthStyleStrategy getAbstractColumnWidthStyleStrategy() {return new AbstractColumnWidthStyleStrategy() {@Overrideprotected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<WriteCellData<?>> cellDataList, Cell cell, Head head, Integer integer, Boolean isHead) {boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList);if (needSetWidth) {Sheet sheet = writeSheetHolder.getSheet();sheet.setColumnWidth(0, 3000);sheet.setColumnWidth(1, 8000);sheet.setColumnWidth(2, 3000);sheet.setColumnWidth(24, 5000);}}};}

参考: https://www.jianshu.com/p/c6b5e42fa2a3

效果

可以看到列宽发生了变化,.

EasyExcel手动设置列宽3.x.x版本相关推荐

  1. EasyExcel导出、按列设置样式、根据表头字数设置列宽、Converter转换

    文章目录 一.Excel导出实体类 二.自定义样式handler 三.servicesImple类中实现方法 四.表头设置列宽handler 五.Converter转换 一.Excel导出实体类 im ...

  2. excel2010设置列宽为像素_怎么改变Excel中列宽的像素

    展开全部 1.打开EXCEL工作bai簿,在[du开始]选项卡-[单zhi元格]功能组中[格式]下拉dao列表中可以设置[行回高].列宽同样在这答里可以找到设置. 2.在行号上点鼠标右键,在弹出的快捷 ...

  3. excel2010设置列宽为像素_使用像素单位设置 EXCEL 列宽或行高

    在导出 Excel 的时候, 经常要需要给列设置宽度或给行设置高度, 在使用 NPOI 或 EppPlus 等组件进行操作的时候, 列宽和行高的单位都不是像素, 好像是英寸,具体是啥也说不清. 平常在 ...

  4. easypoi动态设置列宽

    easypoi动态设置列宽 解决方案 esaypoi内部使用的createSheetForMap 方法固定了列宽,数据会折叠显示 解决:项目下建立同名包,重写关键的setCellWith方法,把eas ...

  5. python tableview 列宽_QTableView设置列宽

    环境: python 2.7.6, pyqt 4.8.6 想要的效果 默认是均匀分布的列宽. 代码顺序: 1.定义QTableview实例tableview 2.定义QAbstractTableMod ...

  6. (二)xlwt模块详解--设置列宽、行高

    第二篇博客是关于设置Excel中的列宽和行高. 废话不多说,直接上代码看效果! 1.设置列宽 xlwt中列宽的值表示方法:默认字体0的1/256为衡量单位.其创建时使用的默认宽度为2960,即11个字 ...

  7. table 固定表格宽度,设置列宽,超出内容省略号显示

    1.table的属性able-layout:fixed,这会使表格大小不会因为内容变化而变化; 2.当表格table-layout为fixed时,其表格宽度由第一行决定,用colgroup配合col标 ...

  8. 阿里easyExcel使用—上(1.1.2-beta5版本)

    阿里easyExcel系列 1.阿里easyExcel使用-上(1.1.2-beta5版本) 2.阿里easyExcel使用-下(easyExcel2.0.0 版本) 3.阿里easyExcel使用- ...

  9. javaweb使用poi下载excel设置样式、合并单元格、设置列宽

    @Overridepublic void exportMajorInfo(@RequestBody StudentInfoDto studentInfoDto) {// 至少存在4列int miniC ...

最新文章

  1. arm服务器配置信息,ARM板 web服务器交叉编译及配置
  2. DotText源码学习——ASP.NET的工作机制
  3. Bitcoin Core开发者:提倡使用信用卡进行日常开销而非比特币
  4. 图文并茂——使用xfire编写webservice,并通过C#调用
  5. 一句DOS命令搞定文件合并
  6. 2021十大金融科技趋势
  7. C语言标准库中常见字符串处理函数
  8. 【spring】spring的事务传播性 hibernate/jpa等的事务隔离性
  9. Extjs3.3结合fckeditor2.6.6实现可视化编辑器(java版)
  10. Linux入门相关基础知识
  11. 信息熵与二进制--信息论系列
  12. 黑苹果smbios机型选择_黑苹果注入三码洗白教程
  13. 申论文章观点的打造技巧
  14. 模拟登录人人网,豆瓣
  15. 图像处理_彩色图像处理_推导产生一幅彩色图像的补色的CMY变换
  16. 在职研究生计算机专业院校,计算机专业在职研究生报名有哪些院校可以选择?...
  17. Quick BI可以帮助我们大大提升响应速度
  18. HTML+CSS实现淘宝静态页面
  19. 几计算机网络特,湛江理工职业学校1级MS0ffice了解计算机网络的基本概念和因特网...
  20. Excel如何快速录入大写数字序列

热门文章

  1. 一款优秀的富文本编辑器element tiptap的使用
  2. Python turtle 学习之画个五角星
  3. vim中 E212:无法打开并写入文件
  4. tensorflow 恢复网络 tensorboard显示
  5. java房屋基础装修预订系统SSH
  6. css 3d 魔方模型
  7. Repository
  8. 2009年节日放假时间安排
  9. js英雄对战小游戏 看看你的人品
  10. LightOJ 1404 Sending Secret Messages 费用流