Hutool工具类导出Excel设置自适应宽度

Hutool工具类导出Excel设置自适应宽度。最近在用Hutool的工具类BigExcelWriter实现Excel表的导出,测试过程,发现默认是不自动适应宽度的,需要设置属性才能自适应

在Hutool的官方文档https://plus.hutool.cn/apidocs/cn/hutool/poi/excel/BigExcelWriter.html找到下面的属性

在这里插入图片描述

注意,文档里面也有提醒此方法必须在指定列数据完全写出后调用才有效,也就是我们需要在write后调用

SXSSFWorkbook workbook = new SXSSFWorkbook();
BigExcelWriter writer = new BigExcelWriter(workbook,"sheet1");
// ... 省略业务实现
writer.writeRow(data);
// 必须在write后调用
writer.autoSizeColumnAll();

不过设置这个自动适配属性后,发现对于数字或者英文字母的都可以自动适配宽度,对于中文的不能自动适配,看了下源码,发现Huttol里面也是调用poi的,应该是poi不能自动适配中文的?所以需要自动手动适配一下宽度

sheet.setColumnWidth(columnNum, columnWidth );

或者网上很多地方的写法,写个工具类,适配一下宽度

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);}}

调用:

setSizeColumn(writer.getSheet(), writer.getColumnCount());

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/143667.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

国内AI工具精选:四款软件,让效率倍增

国内的AI工具也有不少好用的&#xff0c;涵盖了视频生成、文案写作、PPT生成、AI数字人等用途&#xff0c;功能强大&#xff0c;能帮助提高效率&#xff0c;更好地完成工作。 1.AI视频生成——可灵 一款国产的智能视频生成工具&#xff0c;采用3D联合注意力机制&#xff0c;高…

攻防世界--->BABYRE

做题笔记。(可以作为例题。) 下载 查壳 64ida打开。 分析&#xff1a; 动态试一试。 跟进judge 很奇怪是一段.data(数据段) 报错&#xff0c;但是程序并没有结束&#xff1a; 我们对其进行处理&#xff1a;&#xff08;动态函数处理&#xff09; 因为call不能用在.data段&…

人工智能时代,我们依旧有无限的选择权!

人工智能时代&#xff0c;即有人两眼放光&#xff0c;又有人忧心忡忡。前者看到大量的机遇、蓝海&#xff0c;后者看到了失业和糟糕的未来&#xff0c;亦或是有人有喜有忧。但是只要你知晓一个真谛&#xff1a;凡事皆有利有弊&#xff0c;那便不用内耗了。或是选择当前的生活节…

MySQL函数:数值函数

先附一张黑马程序员的听课截图 1. 向上取整函数CEIL(X) select CEIL(1.5); //这个也就是数学中的向上去整数&#xff0c;无需解释 2. 向下取整函数 FLOOR(X) select FLOOR(1.5); //同上&#xff0c;换成向下取整3. 求模运算 MOD(N,M) 求N / M的余数 select mod(3, 4) …

关于红帽认证你想知道的都在这里啦~

大家好&#xff0c;这里是G-LAB IT实验室。近期好多人来问红帽认证&#xff0c;有些是还在校的大学生&#xff0c;有些是已经工作的&#xff0c;针对大家的困惑&#xff0c;专门做了一期解答&#xff0c;下面我们一起来看看大家都有哪些疑问吧~ 01、诸多IT资格证考哪个&#xf…

JMM:Java内存模型

Java内存模型&#xff08;JMM&#xff09; 参考&#xff1a;https://javaguide.cn/java/concurrent/jmm.html、https://www.javabetter.cn/thread/jmm.html JMM 是什么&#xff1f; JMM&#xff08;Java Memory Model&#xff09;出现的原因有两点&#xff08;如下&#xff09…

System.Data.SQLite 版本兼容问题

System.Data.SQLite 32和64位版本兼容问题 SQLite数据库小巧轻量、免费开源&#xff0c;在中小型项目或移动端项目经常使用&#xff0c;在Windows桌面端需要使用System.Data.SQLite.dll文件&#xff0c;版本特别多&#xff0c;可仔细阅读官方文档了解它们的区别。本文介绍如何…

从AI应用排行榜选择AI产品(9月)

2024年9月13日&#xff0c;OpenAI公司宣布推出其全新的AI模型&#xff1a;o1&#xff0c;在数学、编程和科学问题的解决处理能力上取得了显著进步。该模型通过自我对弈强化学习&#xff08;Self-play RL&#xff09;和思维链&#xff08;Chain of Thought, CoT&#xff09;技术…

C++入门基础知识76(实例)——实例 1【输出 “Hello, World!“】

成长路上不孤单&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///C爱好者&#x1f60a;///持续分享所学&#x1f60a;///如有需要欢迎收藏转发///&#x1f60a;】 今日分享关于C 实例 【输出 "Hello, World!&quo…

模版进阶(template)

1.非类型模版参数 模版参数分类类型形参与非类型形参。 ① 类型形参&#xff1a;出现在在模板参数列表中&#xff0c;跟在class或者typename之类的参数类型名称。 ② 非类型形参&#xff0c;就是用一个常量作为类(函数)模板的一个参数&#xff0c;在类(函数)模板中可将该参数当…

如何在算家云搭建RVC-WebUI(语音转换)

一、Retrieval-based-Voice-Conversion-WebUI简介 Retrieval-based-Voice-Conversion-WebUI&#xff08;简称 RVC&#xff09;模型是一个基于 VITS&#xff08;Variational Inference with adversarial learning for end-to-end Text-to-Speech&#xff09;的简单易用的语音转…

系统分析师11:企业信息化战略与实施

1 内容概要 信息与信息化的概念信息系统战略规划政府信息化与电子政务企业信息化与电子商务企业应用集成 2 信息与信息化的概念 2.1 信息的概念及特点 2.1.1 信息的定义 香农&#xff1a;信息就是不确定性的减少。维纳&#xff1a;信息就是信息&#xff0c;既不是物质&…

企业导师面对面,产教融合实训基地搭建人才成长快车道

产教融合实训基地是指以特定专业群为服务对象&#xff0c;由高职院校和企业双方共同投入、共同利用&#xff0c;并由若干实验实训室和模块产线组成的综合性实训基地。这一基地不仅具备工学结合的功能&#xff0c;还融合了教育、产业和科技创新的要素&#xff0c;形成了一种特殊…

大田上的路径跟踪论文汇总

文章目录 2022Path tracking control method and performance test based on agricultural machinery pose correction&#xff08;Computers and Electronics in Agriculture&#xff09;An optimal goal point determination algorithm for automatic navigation of agricult…

最新Kali Linux超详细安装教程(附镜像包)

一、镜像下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1BfiyAMW6E1u9fhfyv8oH5Q 提取码&#xff1a;tft5 二、配置虚拟机 这里我们以最新的vm17.5为例。进行配置 1.创建新的虚拟机&#xff1a;选择自定义 2.下一步 3.选择稍后安装操作系统 4.选择Debian版本 因…

Mastering Qt 番外 —— 添加源码调试

笔者最近正在尝试深入的学习Qt框架&#xff0c;经常需要明确我经常使用的类底下发生了什么&#xff0c;因此笔者决定仔细研究一下如何进行源码级别的调试 此篇文章将会介绍如何使用Qt Creator这个IDE进行调试。最终效果如下 EasyWay 笔者采用的是这个最简单明了的方式&#xff…

springboot调用python脚本实现ocr图片文字识别功能

OCR简介: OCR(Optical Character Recognition),即光学字符识别,是一种利用计算机自动识别和解析图像中的文字信息的技术。它能够将纸质文档、图片、照片等载体上的文字信息转化为计算机可编辑和处理的文本数据。 一,准备工作 1,java环境 2,springboot项目 3,python环境 …

如何增强水凝胶湿粘附力?藤壶启发与溶剂交换策略相结合!

大家好&#xff0c;今天我们来聊聊一项关于水凝胶的有趣研究——《Barnacle inspired strategy combined with solvent exchange for enhancing wet adhesion of hydrogels to promote seawater-immersed wound healing》发表于《Bioactive Materials》。在湿或水下环境中&…

rem与px转换工具

rem与px都是css样式单位,通常px是我们比较熟悉的单位,所以根据设计稿转换rem的话,一般都需要根据html的设置的px字号来转换,本工具可以实现rem与px之间的转换

50个必须知道的VS代码扩展

我们即将浏览50个必须知道的VS Code扩展&#xff0c;这些扩展将大幅提高您的生产力&#xff0c;并帮助您像专业人士一样编码&#xff01; 1. TabNine TabNine 是一个基于AI的自动完成工具&#xff0c;它可以根据您的代码上下文和模式建议完成&#xff0c;通过智能自动完成提高…