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)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)