CellReference firstCell = ar.getFirstCell();
CellReference lastCell = ar.getLastCell();
int columnStart = firstCell.getCol();
int columnEnd = lastCell.getCol();
Row row = sheet.getRow(firstCell.getRow());
CTCacheFields cFields;
if(ctPivotCacheDefinition.getCacheFields() != null) {
cFields = ctPivotCacheDefinition.getCacheFields();
} else {
cFields = ctPivotCacheDefinition.addNewCacheFields();
}
//For each column, create a cache field and give it en empty sharedItems
for(int i=columnStart; i<=columnEnd; i++) {
CTCacheField cf = cFields.addNewCacheField();
if(i==columnEnd){
cFields.setCount(cFields.getCacheFieldList().size());
}
//General number format
cf.setNumFmtId(0);
Cell cell = row.getCell(i);
cell.setCellType(Cell.CELL_TYPE_STRING);