I think most people using isFormulaCell assume they're working with a cell containing a regular formula, not a cell that belongs to an array formula or table. I'd say it's fair to document this distinction in the JavaDoc and provide a isArrayFormulaCell and isTableFormulaCell if those concepts are useful.
On Jun 9, 2017 4:42 PM, "Greg Woolsey" <[email protected]> wrote: POI doesn't currently support "data table" formulas (a variation on array formulas). However, the implementation of XSSFCell.isFormulaCell() still thinks the "master" cell for a data table is a formula type cell. But the formula is not a stored one, but implied by the definition of a data table and it's parameters. Thus getCellFormula() returns an empty string, which doesn't parse as a valid formula. I think isFormulaCell() should just not consider these as formula cells until POI supports data table formulas. Currently saying they are formulas but not actually figuring out what that formula is doesn't make sense. Anyone think of a case this would be bad? It should only affect data table master cells, changing the current expression from: if (_cell.getF() != null || getSheet().isCellInArrayFormulaContext(this)) to if ( (_cell.isSetF() && _cell.getF().getT() != STCellFormulaType.DATA_TABLE ) || getSheet().isCellInArrayFormulaContext(this)) doesn't break anything for me.
