diff --git a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFTable.java b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFTable.java index c09849d2f3..20aa24bb93 100644 --- a/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFTable.java +++ b/poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFTable.java @@ -703,4 +703,27 @@ public final class TestXSSFTable { } } } + + @Test + void bug66211() throws IOException { + try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("table-sample.xlsx")) { + XSSFTable table = wb.getTable("Tabelle1"); + assertEquals(1, table.getHeaderRowCount()); + assertEquals(3, table.getStartRowIndex()); + List cols = table.getColumns(); + assertEquals(5, cols.size()); + assertEquals("Field 1", cols.get(0).getName()); + XSSFSheet sheet = table.getXSSFSheet(); + XSSFRow headerRow = sheet.getRow(3); + headerRow.getCell(2).setCellValue("Column 1"); + table.updateHeaders(); + List updatedCols = table.getColumns(); + assertEquals(5, updatedCols.size()); + assertEquals("Column 1", updatedCols.get(0).getName()); + assertEquals(cols.get(1).getName(), updatedCols.get(1).getName()); + assertEquals(cols.get(2).getName(), updatedCols.get(2).getName()); + assertEquals(cols.get(3).getName(), updatedCols.get(3).getName()); + assertEquals(cols.get(4).getName(), updatedCols.get(4).getName()); + } + } } diff --git a/test-data/spreadsheet/table-sample.xlsx b/test-data/spreadsheet/table-sample.xlsx new file mode 100644 index 0000000000..b2a1aa8d6c Binary files /dev/null and b/test-data/spreadsheet/table-sample.xlsx differ