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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值