NPOI 获取指定范围的单元格

27 篇文章 0 订阅
//返回指定范围单元格
public  ICellRange<ICell> GetCellRange(ISheet ws, CellRangeAddress range)
{
    int firstRow = range.FirstRow;
    int firstColumn = range.FirstColumn;
    int lastRow = range.LastRow;
    int lastColumn = range.LastColumn;
    int height = lastRow - firstRow + 1;
    int width = lastColumn - firstColumn + 1;
    List<ICell> temp = new List<ICell>(height * width);
    for (int rowIn = firstRow; rowIn <= lastRow; rowIn++)
    {
        for (int colIn = firstColumn; colIn <= lastColumn; colIn++)
        {
            IRow row = ws.GetRow(rowIn);
            if (row == null)
            {
                row = ws.CreateRow(rowIn);
            }
            ICell cell = row.GetCell(colIn);
            if (cell == null)
            {
                cell = row.CreateCell(colIn);
            }
            temp.Add(cell);
        }
    }
    return SSCellRange<ICell>.Create(firstRow, firstColumn, height, width, temp, typeof(HSSFCell));
}
int rowstart=1;    //开始行
int rowend=3;      //结束行
int colstart=2;    //开始列
int colend=5;      //结束列
IWorkbook wb = new XSSFWorkbook();
ISheet ws= wb.CreateSheet("Sheet1");
//获取范围单元格
ICellRange<ICell> cellRange = GetCellRange(ws, new CellRangeAddress(rowstart, rowend, colstart, colend));
//遍历整个范围的单元格
foreach (ICell c in cellRange)
{
    
}

上述代码返回红色标识的单元格。

R1C2分别对应:rowstart,colstart

R3C5分别对应:rowend,colend

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值