@Override
  public KCell getCell( int colnr, int rownr ) {
    if ( rownr == 0 && colnr < headerRow.size() ) {
      // only possible to return header
      return new StaxPoiCell( headerRow.get( colnr ), rownr );
    }
    // if random access this will be very expensive
    KCell[] row = getRow( rownr );
    if ( row != null && rownr < row.length ) {
      return row[colnr];
    }
    return null;
  }
@Test
  public void testReadCells() throws Exception {
    KSheet sheet = getSampleSheet();

    KCell cell = sheet.getCell( 1, 2 );
    assertEquals( "One", cell.getValue() );
    assertEquals( KCellType.LABEL, cell.getType() );

    cell = sheet.getCell( 2, 2 );
    assertEquals( KCellType.DATE, cell.getType() );
    assertEquals( new Date( 1283817600000L ), cell.getValue() );

    cell = sheet.getCell( 1, 3 );
    assertEquals( "Two", cell.getValue() );
    assertEquals( KCellType.LABEL, cell.getType() );
  }