//设置自适应宽度
for (int columnNum = 0; columnNum <= column_Count; columnNum++)
{
int columnWidth = SheetName.GetColumnWidth(columnNum) / 256;//获取当前列宽
for (int rowNum = 0; rowNum <= SheetName.LastRowNum; rowNum++)
{
IRow currentRow = SheetName.GetRow(rowNum);
if (currentRow.GetCell(columnNum) != null)
{
ICell currentCell = currentRow.GetCell(columnNum);
int length = Encoding.UTF8.GetBytes(currentCell.ToString()).Length;//获取当前单元格的内容宽度
if (columnWidth < length)//若当前单元格内容宽度大于列宽,则调整列宽为当前单元格宽度
{
columnWidth = length;
}
}
}
SheetName.SetColumnWidth(columnNum, columnWidth * 256);
}
columnNum是列号,从0开始循环到表格最后一列,循环的范围可以自己指定,原理很简单,就是在先循环列,在列上循环行,比对行内容宽度与列宽度,若行内容宽度大于列宽则增大列宽,循环以后,每列宽度等于该列中最宽的那一行的宽度。