A pre-evaluated value in a Formula cell is written by SheetDataWriter as follows: switch(cell.getCachedFormulaResultType()) { case NUMERIC: writeAttribute("t", "n"); break; case STRING: writeAttribute("t", STCellType.S.toString()); break; case BOOLEAN: writeAttribute("t", "b"); break; case ERROR: writeAttribute("t", "e"); break; } The problem is that STCellType.S is for shared strings, but then the value is immediately written with <v></v> for an inline string. The correct cell type in this situation is "str", not "s". This causes Excel to mark the sheet as invalid when opening.
Created attachment 36901 [details] Patch to set cell type to "str" for formula cells with pre-evaluated string contents Patch attached.
Applied via r1872130, thanks for the patch!