code: private SheetMapper<T> getPoiMapper(int startRow, Sheet sheet) {
          Row row = sheet.getRow(startRow);
  
          List<CsvColumnKey> keys = new ArrayList<CsvColumnKey>(row.getLastCellNum() - row.getFirstCellNum());
          for(short i = row.getFirstCellNum(); i <= row.getLastCellNum(); i++) {
              Cell cell = row.getCell(i);
              if (cell != null && cell.getCellType() != Cell.CELL_TYPE_BLANK) {
                  keys.add(new CsvColumnKey(cell.getStringCellValue(), i));
              }
          }
  
          return getPoiMapper(new MapperKey<CsvColumnKey>(keys.toArray(new CsvColumnKey[0])));
  
  
      }
docs: IFJAVA8_END