public static void autoSetRowHeight(String filePath, int startRowIndex) {
try {
//写入
File old = new File(filePath);
FileInputStream fileInput = new FileInputStream(old);
XSSFWorkbook workbook = new XSSFWorkbook(fileInput);
XSSFSheet sheet = workbook.getSheetAt(0);
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows();
System.out.println("physicalNumberOfRows = " + physicalNumberOfRows);
for(int i = startRowIndex;i<physicalNumberOfRows;i++) {
XSSFRow row = sheet.getRow(i);
if (null == row) {
continue;
}
XSSFCell cell = row.getCell(2);
if (null ==cell) {
continue;
}
String[] split = row.getCell(2).getStringCellValue().split("\\r?\\n",-1);
// System.out.println(split.length);
row.setHeightInPoints(((split.length+1) * sheet.getDefaultRowHeightInPoints()));
}
FileOutputStream fileOutputStream = new FileOutputStream(filePath);
workbook.write(fileOutputStream);
// 关闭资源
fileInput.close();
fileOutputStream.close();
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
}