From 7301e841c7acde26553057579449d786014c2807 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Sat, 13 Aug 2022 15:09:18 +0000 Subject: [PATCH] [bug-66211] add test case git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1903393 13f79535-47bb-0310-9956-ffa450edef68 --- .../poi/xssf/usermodel/TestXSSFTable.java | 23 ++++++++++++++++++ test-data/spreadsheet/table-sample.xlsx | Bin 0 -> 10595 bytes 2 files changed, 23 insertions(+) create mode 100644 test-data/spreadsheet/table-sample.xlsx 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 0000000000000000000000000000000000000000..b2a1aa8d6c140f2edbf8ce925ae2fd03a89e2937 GIT binary patch literal 10595 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 q