Hutool工具类ExcelWriter导出excel列宽自适应问题解决
前言:
因为项目中需要使用到ExcelWriter导出excel的列宽自适应,下面为解决该问题的经过,希望可以对遇到同样问题的开发者有所帮助。
一、通过查询Hutool官方的api文档发现autoSizeColumn()方法
官方api链接
但是,在代码中使用该方法后发现并没有起作用。
二、通过搜索发现其他开发者使用Sheet强制转换为SXSSFSheet,后再调用改方法可以成功设置自适应。
SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();sheet.trackAllColumnsForAutoSizing();writer.autoSizeColumnAll();
再次尝试使用后报错:
java.lang.ClassCastException: org.apache.poi.hssf.usermodel.HSSFSheet cannot be cast to org.apache.poi.xssf.streaming.SXSSFSheet
三、自定义方法
/*** 自适应宽度(中文支持)* @param sheet* @param size 因为for循环从0开始,size值为 列数-1*/public static void setSizeColumn(Sheet sheet, int size) {for (int columnNum = 0; columnNum <= size; columnNum++) {int columnWidth = sheet.getColumnWidth(columnNum) / 256;for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++) {Row currentRow;//当前行未被使用过if (sheet.getRow(rowNum) == null) {currentRow = sheet.createRow(rowNum);} else {currentRow = sheet.getRow(rowNum);}if (currentRow.getCell(columnNum) != null) {Cell currentCell = currentRow.getCell(columnNum);if (currentCell.getCellType() == XSSFCell.CELL_TYPE_STRING) {int length = currentCell.getStringCellValue().getBytes().length;if (columnWidth < length) {columnWidth = length;}}}}sheet.setColumnWidth(columnNum, columnWidth * 256);}}
问题解决,可以实现列宽自适应。
效果展示:
大神的解决办法:
根据大神的评论,我调用的位置可能不对,要在写出内容后调用才会生效。
Hutool工具类ExcelWriter导出excel列宽自适应问题解决相关推荐
- java基于HuTool工具类ExcelWriter合并单元格
** java基于HuTool工具类ExcelWriter合并单元格 ** 1.基于HuTool工具类ExcelWriter合并单元格并且使用 jdk1.8 lambda表达式 效果如下: 用姓名和编 ...
- 利用POI工具类实现导出Excel的功能
poi工具类的概述: Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 结构: HSSF - 提供读 ...
- java工具类之导出Excel
在我们的项目中经常会用到导出excel,这里就列举一下大家最常用到的导出EXCEL技术,在说一下自己设计的工具类.对POI不感兴趣的人,可以直接跳到最下面的工具类; 什么是Apache POI? Ap ...
- gridControlExport.ExportToXls(fileName) dev gridcontrol导出excel列宽问题
设置 gridview.OptionsPrint.AutoWidth=False gridview.OptionsView.ColumnAutoWidth=False gcExport.DataSou ...
- excel2010设置列宽为像素_使用像素单位设置 EXCEL 列宽或行高
在导出 Excel 的时候, 经常要需要给列设置宽度或给行设置高度, 在使用 NPOI 或 EppPlus 等组件进行操作的时候, 列宽和行高的单位都不是像素, 好像是英寸,具体是啥也说不清. 平常在 ...
- hutool导出excel大数据_HuTool工具类使用之Excel文档的导入导出
HuTool工具类使用之Excel文档的导入导出 前言 在日常的工作开发中,Excel的导入和导出是必不可少的,如果自己写相应的导入导出方法,会显得十分繁琐,本文采用Hutool工具类实现的Excel ...
- hutool 自定义excel_HuTool工具类使用之Excel文档的导入导出
HuTool工具类使用之Excel文档的导入导出 前言 在日常的工作开发中,Excel的导入和导出是必不可少的,如果自己写相应的导入导出方法,会显得十分繁琐,本文采用Hutool工具类实现的Excel ...
- java导出excel设置行高列宽_使用POI生成Excel文件,可以自动调整excel列宽
//autoSizeColumn()方法自动调整excel列宽 importjava.io.FileOutputStream; importorg.apache.poi.hssf.usermodel. ...
- 用hutool工具类导出excel
工作上有一个导出数据的需求,发现用hutool工具类可以非常简洁快捷的生成excel导出. 前期准备 引入hutool的依赖: <dependency><groupId>cn. ...
最新文章
- 在互联网公司说女生备孕,就像跟你女朋友说你不行一个性质!
- 原创 | 初学者友好!最全算法学习资源汇总(附链接)
- 斯坦福NLP笔记72 —— The Inverted Index
- ibm服务器虚拟化报价,IBM x86 服务器虚拟化服务.pdf
- MFC和QT等UI框架的特点
- mysql内连接查询原理_MySQL全面瓦解12:连接查询的原理和应用
- DXP 内电层分割
- activemq消息丢失_面试必问之消息中间件
- 树莓派进阶之路 (029) - 语音识别模块 LD3320(原创)
- windows下搭建ffmpeg环境
- c语言 字符串逆序存放,(原创)字符串逆序输出
- 小白量化彩票实战(5)彩票号码快速生成组合及利用数据库生成彩票号码组合
- 【语音信号处理】3语音信号可视化——prosody
- 愿天下有情人都是失散多年的兄妹
- Agile PLM 表结构说明
- dvanced Installer Architect
- mac查看、修改文件权限
- SQL SERVER 实用教程(第四版) 实验 1-10 非标准答案
- 大脑衰老可逆转,只需注入年轻脑脊液,「返老还童」登Nature
- linux系统认证中级是什么,目前国内常见的几种Linux认证及其所需价格