private static void setAutoColumnWidth(XSSFSheet sheet,int maxColumnNum) {
try{
//获取当前列的宽度,然后对比本列的长度,取最大值
for (int columnNum = 0; columnNum <= maxColumnNum; columnNum++)
{
int columnWidth = sheet.getColumnWidth(columnNum) / 256;
for (int rowNum = 0; rowNum <= sheet.getLastRowNum(); rowNum++)
{
Row currentRow;
//当前行未被使用过
if (sheet.getRow(rowNum) == null)
{
currentRow = sheet.createRow(rowNum);
}
else
{
currentRow = sheet.getRow(rowNum);
}
if(currentRow.getCell(columnNum) != null)
{
Cell currentCell = currentRow.getCell(columnNum);
int length = currentCell.toString().getBytes("GBK").length;
if (columnWidth < length + 1)
{
columnWidth = length + 1;
}
}
}
sheet.setColumnWidth(columnNum, columnWidth * 300);
}
}catch (UnsupportedEncodingException e){
e.printStackTrace();
}
}
}
借鉴:原文出处