easyexcle 设置列宽_easyexcel自适应列宽
在导出时注册registerWriteHandler(new CustomCellWriteHandler())
/**
* @author jamin
* @date 2020/7/29 11:28
* 设置自适应列宽
*/
public class CustomCellWriteHandler extends AbstractColumnWidthStyleStrategy {
private Map> CACHE = new HashMap<>();
@Override
protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List cellDataList, Cell cell, Head head, Integer integer, Boolean isHead) {
boolean needSetWidth = isHead || !CollectionUtils.isEmpty(cellDataList);
if (needSetWidth) {
Map maxColumnWidthMap = CACHE.get(writeSheetHolder.getSheetNo());
if (maxColumnWidthMap == null) {
maxColumnWidthMap = new HashMap<>();
CACHE.put(writeSheetHolder.getSheetNo(), maxColumnWidthMap);
}
Integer columnWidth = this.dataLength(cellDataList, cell, isHead);
if (columnWidth >= 0) {
if (columnWidth > 255) {
columnWidth = 255;
}
Integer maxColumnWidth = maxColumnWidthMap.get(cell.getColumnIndex());
if (maxColumnWidth == null || columnWidth > maxColumnWidth) {
maxColumnWidthMap.put(cell.getColumnIndex(), columnWidth);
writeSheetHolder.getSheet().setColumnWidth(cell.getColumnIndex(), columnWidth * 256);
}
}
}
}
private Integer dataLength(List cellDataList, Cell cell, Boolean isHead) {
if (isHead) {
return cell.getStringCellValue().getBytes().length;
} else {
CellData cellData = cellDataList.get(0);
CellDataTypeEnum type = cellData.getType();
if (type == null) {
return -1;
} else {
switch (type) {
case STRING:
return cellData.getStringValue().getBytes().length;
case BOOLEAN:
return cellData.getBooleanValue().toString().getBytes().length;
case NUMBER:
return cellData.getNumberValue().toString().getBytes().length;
default:
return -1;
}
}
}
}
}
easyexcle 设置列宽_easyexcel自适应列宽相关推荐
- easyexcle 设置列宽_easyexcel自动列宽失效
easyexcel版本2.1.4 问题现象: 使用自动列宽LongestMatchColumnWidthStyleStrategy时,除了第一次调用接口,列宽自动,后面几次调用列宽未设置 问题原因: ...
- elementui表格宽度适应内容_elementui表格中的列怎么实现自适应列宽
elementui表格中的列怎么实现自适应列宽 发布时间:2020-12-28 14:58:04 来源:亿速云 阅读:53 作者:Leah 这期内容当中小编将会给大家带来有关elementui表格中的 ...
- 设置DBGridEH自适应列宽的最好方法
设置DBGridEH自适应列宽的最好方法 一直在找最好的根据DBGridEH(或者DBGrid)的内容和标题栏设置自适应列宽的方法,一直没有太好的.今天从园地上发现了源码:地址如下,非常好用.与大家分 ...
- elementui表格宽度适应内容_解决elementui表格操作列自适应列宽代码示例
本篇文章小编给大家分享一下解决elementui表格操作列自适应列宽代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 写死宽度时是这样的: 开始 ...
- android listview 自适应列宽_Android 开发技术周报 Issue#272
新闻/News 谷歌Pixel 4a将采用UFS 2.1存储:可以体验全套GMS [图]Android端Play商城现全面开放深色主题 教程/Tutorial OkHttp Interceptor - ...
- EasyExcel自适应列宽(官方文档的不好用,个人修改了下)
直接粘贴了用就行,调了半天 package com.wpg.common.handler;import com.alibaba.excel.enums.CellDataTypeEnum; import ...
- java通过poi生成excel表格(自适应列宽、合并单元格后的边框添加)
具体java通过POI读写Excel的基本使用方法可参考: POI读写Excel的基本使用 1.项目导入依赖: <!--xls--> <dependency><group ...
- easyExcel 导出文件时,设置单元格样式,自适应列宽
目录 1.自适应列宽实现类 2.单元格样式实现类 3.导出的时候,特殊数据类型,需要设置转换类,不然注解导出方式会报错 注解使用方式 日期转换类 4.web导出excel(将excel数据写入到res ...
- hutool导出导出excel中文自适应列宽
问题:在使用hutool工具类ExcelWriter导出excel表格时,设置了自适应列宽格式,只有数字和字母生效,中文自适应列宽不生效,列宽只有差不多一半. 解决方法(同样适用于LINUX): Ex ...
最新文章
- 网页调用本地播放器的代码支持ie,chroome, 火狐不支持
- Qt Creator调试C ++示例应用程序
- 蓝桥练习-算法训练 素因子去重
- 从mysql读取图片_如何从sql数据库内读取图片
- tomcat学习笔记——lifecycle(容器)启动都干了什么
- Windows11电脑锁屏快捷键是什么
- 他一口气写出了这7k字的红黑树总结!看过的都说好!!|文末送书
- pandas 检查某个元素是否在index中
- 医用计算机基础学习心得,计算机基础学习心得.doc
- Perl内置特殊变量
- java+登录window域认证网页_Java 如何用 token 做用户登录认证
- 什么叫ServletContext对象?
- 基于GDAL实现的PCA变换(主成分分析)
- GJB150.18A-2009机械冲击试验测试要求
- IBM X系列服务器通过sysmgmt接口查看日志
- EXCEL 如何删除重复值,并保留重复值的第一个选项
- 加推科技领读:2019,深圳开荒牛的TO B拓荒路
- 社保及公积金转外省流程
- 奔跑吧linux内核知乎,802.11ah(HaLow)协议解析7:NDP控制帧(NDP CMAC Frame)
- 未来医疗大数据想象空间大