java生成excel设置列宽,汉字问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java生成excel设置列宽,汉字问题相关的知识,希望对你有一定的参考价值。
如下代码
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("test");
XSSFRow row = sheet.createRow(0);
for (int i = 0; i < map.size(); i++)
row.createCell(i).setCellValue(map.get(i) + "\r\n" + "qweqwe");
sheet.setColumnWidth((short) i,(short) (map.get(i).length() *256));
里面sheet.setColumnWidth((short) i,(short) (map.get(i).length() *256));为设置excel列宽随map.get(i) + "\r\n" + "qweqwe"的长度而改变,但是他是依据map.get(i).length()给出的长度,我的map.get(i)里面含有汉字,所以sheet.setColumnWidth((short) i,(short) (map.get(i).length() *256))就比实际的长度短一些,有没有办法才能让他正好是map.get(i) + "\r\n" + "qweqwe"长度呢
如果是12号字体,一个汉字的宽度应该是12像素,一个字母应该大致是6像素。
你还需要将1像素转化为1excel单元格的宽度单位。本回答被提问者采纳
用poi导出excel设置列宽的方法
参考技术A很多朋友都想知道poi导出excel设置列宽的 方法 ,那么,该怎么做呢,下面让我为你带来poi导出excel设置列宽的简单方法。
poi导出excel设置列宽步骤:
接下来 说说 sheet.setColumnWidth((short) 0, (short) 250);
第一个参数表示要为第几列设置,第二个参数表示列的宽度,看看上面的代码按说第一行第一列的单元格形状应该是个正方形,因为宽和高都是250,但是打开导出后的 Excel 发现宽度没有高度大,是个长方形,查看该列的宽度仅为7个像素,看来行高和列宽的单位是不一样的,同样换一算sheet.setColumnWidth((short) 0, (short) (35.7));表示高度为一个像素,同样设置列宽的像素为sheet.setColumnWidth((short) 0, (short) (35.7*n));//n为列高的像素数。
关于poi导出excel的相关 文章 推荐:
1. java简历模板
2. java简历填写范文3篇
以上是关于java生成excel设置列宽,汉字问题的主要内容,如果未能解决你的问题,请参考以下文章