How to get the Excel Cell value by address (A1, A2) using NPOI

Anand K G picture Anand K G · Jun 3, 2016 · Viewed 10.5k times · Source

I have an Excel Cell Address like A1, A2. How do I access this cell programmatically using NPOI framework in C#?

Some Java POI example code I found:

CellReference cr = new CellReference("A1"); 
row = mySheet.getRow(cr.getRow()); 
cell = row.getCell(cr.getCol());

Answer

Paul-Jan picture Paul-Jan · Jun 21, 2016

The Java code you found translates 1:1 into C#:

  • First you convert the cell description (A1) into a CellReference
  • Use the Row and Col from that CellReference to lookup the actual cell.

Here is some sample code

var workbook = new XSSFWorkbook(stream);
var sheet = workbook.GetSheetAt(0);

var cr = new CellReference("D5");
var row = sheet.GetRow(cr.Row);
var cell = row.GetCell(cr.Col);

Console.Write(cell.StringCellValue);

Do note that referencing an empty Cell will result in an exception. Excel doesn't store non-used cells internally, and (N)POI does not attempt to hide that fact from the developer.