java 导出excel 怎么设置单元格宽度自适应

java 导出excel 怎么设置单元格宽度自适应,第1张

POI是apache提供的一个读写Excel文档的开源组件,在 *** 作excel时常要合并单元格,合并单元格的方法是:

sheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 2))

自适应列宽度

sheet.autoSizeColumn(1)

sheet.autoSizeColumn(1, true)

这两种方式都是自适应列宽度,但是注意这个方法在后边的版本才提供,poi的版本不要太老。 注意:第一个方法在合并单元格的的单元格并不好使,必须用第二个方法。

sheet.setColumnWidth(m, “列名”.getBytes().length*2*256)

这个方法是计算字符串的长度,以便设置列宽,该方法在解决中文的问题上比较好,前面两种方法对中文不好好用。。。。

还有在自适应宽度的时候,有时候遇到单元格是公式单元格,自适应不起作用,那是因为单元格存的是公式,并不是真正的数据,解决方法:

HSSFFormulaEvaluator evaluator = new HSSFFormulaEvaluator(sheet.getWorkbook())

CellValue cell71Val = evaluator.evaluate(cell71)

cell71.setCellValue(cell71Val.getNumberValue())

将格式化后的数据再次set进去,就是真正的值了。

貌似只能大概猜测。因为英文的字符不是等宽的,另外也和font-size, font-family有关。

如果是12号字体,一个汉字的宽度应该是12像素,一个字母应该大致是6像素。

你还需要将1像素转化为1excel单元格的宽度单位。

2、 行高和列宽

WritableSheet.setRowView(int i,int height)

作用是指定第i+1行的高度,比如:

//将第一行的高度设为200

sheet.setRowView(0,200)

WritableSheet.setColumnView(int i,int width)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/7755644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存