使用npoi单元格范围地址读取excel

我知道NPOI创buildexcel文件非常棒。 现在我想在特定的专栏中阅读excel。 这是我的excel格式:

DEFGH 3 Col1 Col2 Col3 Col4 Col5 4 a 1 1/1/2014 5 b 2 2/1/2014 6 c 3 3/1/2014 7 d 4 4/1/2014 8 e 5 5/1/2014 

我只想在Col2,Col4和Col5中获取数据。 应该是这样的:

 Col2 Col4 Col5 a 1 1/1/2014 b 2 2/1/2014 c 3 3/1/2014 d 4 4/1/2014 e 5 5/1/2014 

我必须做什么 ? 我可以使用范围地址来获得特定的列,然后获取单元格值吗?

感谢专家。

如果你有一个固定的工作表模板,实现你想要的最简单的方法是遍历行并检索指定索引处的单元格值。

例如,基于OP的例子:

 var sheet = workbook.GetSheetAt(0); // assuming 0 is the worksheet index for (var i = 0; i <= sheet.LastRowNum; i++) { var row = sheet.GetRow(i); if (row == null) continue; // do your work here Console.Write("{0}\t", row.GetCell(4)); Console.Write("{0}\t", row.GetCell(6)); Console.Write("{0}\t", row.GetCell(7)); Console.WriteLine(); } 

但是,如果你坚持使用范围地址,你可以尝试使用像这样的CellRangeAddress类:

 var sheet = workbook.GetSheetAt(0); var range = "E3:H8"; var cellRange = CellRangeAddress.ValueOf(range); for (var i = cellRange.FirstRow; i <= cellRange.LastRow; i++) { var row = sheet.GetRow(i); for (var j = cellRange.FirstColumn; j <= cellRange.LastColumn; j++) { // skip cell with column index 5 (column F) if (j == 5) continue; // do your work here Console.Write("{0}\t", row.GetCell(j)); } Console.WriteLine(); }