diff --git a/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/Excel/XLWorkbook_Load.cs
index a23ab4e..b9acf8e 100644
--- a/ClosedXML/Excel/XLWorkbook_Load.cs
+++ b/ClosedXML/Excel/XLWorkbook_Load.cs
@@ -265,11 +265,15 @@
#region LoadTables
- foreach (TableDefinitionPart tablePart in wsPart.TableDefinitionParts)
+ foreach (var tablePart in wsPart.TableDefinitionParts)
{
var dTable = tablePart.Table;
- string reference = dTable.Reference.Value;
- XLTable xlTable = ws.Range(reference).CreateTable(dTable.Name, false) as XLTable;
+ String reference = dTable.Reference.Value;
+ String tableName = dTable?.Name ?? dTable.DisplayName ?? string.Empty;
+ if (String.IsNullOrWhiteSpace(tableName))
+ throw new InvalidDataException("The table name is missing.");
+
+ XLTable xlTable = ws.Range(reference).CreateTable(tableName, false) as XLTable;
if (dTable.HeaderRowCount != null && dTable.HeaderRowCount == 0)
{
xlTable._showHeaderRow = false;
@@ -2399,4 +2403,4 @@
return false;
}
}
-}
\ No newline at end of file
+}
diff --git a/ClosedXML_Tests/ClosedXML_Tests.csproj b/ClosedXML_Tests/ClosedXML_Tests.csproj
index 487ea3a..14147f8 100644
--- a/ClosedXML_Tests/ClosedXML_Tests.csproj
+++ b/ClosedXML_Tests/ClosedXML_Tests.csproj
@@ -285,6 +285,7 @@
+
diff --git a/ClosedXML_Tests/Excel/Loading/LoadingTests.cs b/ClosedXML_Tests/Excel/Loading/LoadingTests.cs
index 218ae90..b35cdb9 100644
--- a/ClosedXML_Tests/Excel/Loading/LoadingTests.cs
+++ b/ClosedXML_Tests/Excel/Loading/LoadingTests.cs
@@ -27,7 +27,8 @@
@"Misc\InvalidPrintTitles.xlsx",
@"Misc\ExcelProducedWorkbookWithImages.xlsx",
@"Misc\EmptyCellValue.xlsx",
- @"Misc\AllShapes.xlsx"
+ @"Misc\AllShapes.xlsx",
+ @"Misc\TableWithNameNull.xlsx"
};
foreach (var file in files)
diff --git a/ClosedXML_Tests/Resource/Misc/TableWithNameNull.xlsx b/ClosedXML_Tests/Resource/Misc/TableWithNameNull.xlsx
new file mode 100644
index 0000000..0a5a8de
--- /dev/null
+++ b/ClosedXML_Tests/Resource/Misc/TableWithNameNull.xlsx
Binary files differ