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進去,就是真正的值了。
