When adding two String cells (XSSFCell) with the following values: " O" " O " The method public void setCellValue(RichTextString str) from XSSFCell adds the same value for both of them. --> Both are shown as " O" in Excel file, this is the value of first String processed. This happens because public int addEntry(CTRst st) (from SharedStringsTable class) treats both string as the same value. The generated XML for the cells is in both cases: <t xml:space="preserve" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">O</t> <t xml:space="preserve" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">O</t>
The problem is solved in version 3.13 (last stable version)