diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java index 99a9e37756..abab993669 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/model/StylesTable.java @@ -841,15 +841,20 @@ public class StylesTable extends POIXMLDocumentPart implements Styles { * @return defined style, either explicit or built-in, or null if not found * * @since 3.17 beta 1 - * @throws IllegalArgumentException if there is no explicit table style but the name is an * unknown built-in style */ public TableStyle getTableStyle(String name) { if (name == null) return null; TableStyle tableStyle = getExplicitTableStyle(name); - if (tableStyle == null) - tableStyle = XSSFBuiltinTableStyle.valueOf(name).getStyle(); - return tableStyle; + if (tableStyle != null) { + return tableStyle; + } + + try { + return XSSFBuiltinTableStyle.valueOf(name).getStyle(); + } catch (IllegalArgumentException e) { + return getExplicitTableStyle(name); + } } /** diff --git a/test-data/spreadsheet/xssf-enum.xltx.xlsx b/test-data/spreadsheet/xssf-enum.xltx.xlsx new file mode 100644 index 0000000000..24a2104473 Binary files /dev/null and b/test-data/spreadsheet/xssf-enum.xltx.xlsx differ