npoi 设定视图为分页预览_2.6.6 用NPOI操作EXCEL--设置初始视图的行、列

本文介绍了如何使用NPOI库在生成Excel文件时设定初始视图,包括设置焦点单元格、选中特定区域以及设置多个选中区域。通过SetAsActiveCell和SetActiveCellRange等方法,可以实现打开Excel时自动定位到特定位置,并展示指定的可见区域。

有些时候,我们可能希望生成的Excel文件在被打开的时候自动将焦点定位在某个单元格或是选中某个区域中。在NPOI中可以通过SetAsActiveCell和SetActiveCellRange等几个方法实现。

首先我们看一下设置初始视图中选中某个单元格的方法:

//use HSSFCell.SetAsActiveCell() to select B6 as the active columnHSSFSheet sheet1=hssfworkbook.CreateSheet("Sheet A");

CreateCellArray(sheet1);

sheet1.GetRow(5).GetCell(1).SetAsActiveCell();//set TopRow and LeftCol to make B6 the first cell in the visible areasheet1.TopRow=5;

sheet1.LeftCol=1;

其中CreateCellArray(sheet1)方法用来写示范数据,其代码为(下同):

staticvoidCreateCellArray(HSSFSheet sheet)

{for(inti=0; i<300; i++)

{

HSSFRow row=sheet.CreateRow(i);for(intj=0; j<150; j++)

{

HSSFCell cell=row.CreateCell(j);

cell.SetCellValue(i*j);

}

}

}

生成的Excel打开时效果如下,注意B6为默认选中状态,TopRow和LeftCol设置B6为当前可见区域的第一个单元格:

41174998430b74ec96c49703d4bfec34.png

如果不设置TopRow和LeftCol属性,默认的可见域的第一个单元格为A1,如下是另一种设置活动单元格的方法,但没有设置此Sheet的TopRow和LeftCol:

HSSFSheet sheet2=hssfworkbook.CreateSheet("Sheet B");

sheet2.Sheet.SetActiveCell(1,5);

对应生成的Excel显示为:

3e5118ee984da06bb74b1f21674a455b.png

除了设置某个单元格为选中状态外,还NPOI可以设置某个区域为选中状态:

//use Sheet.SetActiveCellRange to select a cell rangeHSSFSheet sheet3=hssfworkbook.CreateSheet("Sheet C");

CreateCellArray(sheet3);

sheet3.Sheet.SetActiveCellRange(2,5,1,5);

以上代码设置了Sheet C的选中区域为B3:F6:

ec31d7f03c080cd65cd3f72053276a5b.png

还有更强大的,设置多个选中区域:

//use Sheet.SetActiveCellRange to select multiple cell rangesHSSFSheet sheet4=hssfworkbook.CreateSheet("Sheet D");

CreateCellArray(sheet4);

Listcellranges=newList();

cellranges.Add(newCellRangeAddress8Bit(1,3,2,5));

cellranges.Add(newCellRangeAddress8Bit(6,7,8,9));

sheet4.Sheet.SetActiveCellRange(cellranges,1,6,9);

ead965489bee9f9616c23760afb30c29.png

如果一个Excel文件中有多个Sheet,还可以通过如下语句设置打开时的初始Sheet:

hssfworkbook.ActiveSheetIndex=2;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值