XSSFWorkbook增加自适应宽度
1、先设置垂直居中和水平居中
| XSSFCellStyle style = workbook.createCellStyle(); |
| style.setAlignment(HorizontalAlignment.CENTER); |
| style.setVerticalAlignment(VerticalAlignment.CENTER); |
2、根据表头字节长度设置宽度
i为index
自适应宽度(不同环境效果不一样)
| sheet.autoSizeColumn(i); |
| sheet.autoSizeColumn(i, true); |
根据字节长度宽度自适应
| |
| |
| |
| String cellValueStr = (String) cellValue; |
| if (StringUtils.isNotEmpty(cellValueStr)){ |
| sheet.setColumnWidth(i,cellValueStr.getBytes().length*256); |
| } |
3、增加获取正确宽度的方法
调用
| sheet.setColumnWidth(i,getStrLength(cellValueStr)*256); |
获取正确的宽度
| |
| |
| |
| |
| |
| private static int getStrLength(String str){ |
| if(StringUtils.isEmpty(str)){ |
| return 0; |
| } |
| |
| Pattern pattern = Pattern.compile("[\u4e00-\u9fa5]"); |
| int lengthPtn = 0; |
| int lengthNOtPtn = 0; |
| char[] array = str.toCharArray(); |
| |
| for (int i = 0; i < array.length; i++) { |
| Matcher matcher = pattern.matcher(String.valueOf(array[i])); |
| if (matcher.matches()){ |
| lengthPtn++; |
| } |
| } |
| lengthNOtPtn = array.length-lengthPtn; |
| return lengthPtn*3+lengthNOtPtn*2; |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?