NPOI中实现宽度自适应

//设置自适应宽度
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开始循环到表格最后一列,循环的范围可以自己指定,原理很简单,就是在先循环列,在列上循环行,比对行内容宽度与列宽度,若行内容宽度大于列宽则增大列宽,循环以后,每列宽度等于该列中最宽的那一行的宽度。

你可能感兴趣的:(npoi的学习)