diff --git a/ClosedXML/Excel/Cells/XLCell.cs b/ClosedXML/Excel/Cells/XLCell.cs index da9adbb..2dd6fc7 100644 --- a/ClosedXML/Excel/Cells/XLCell.cs +++ b/ClosedXML/Excel/Cells/XLCell.cs @@ -786,12 +786,12 @@ if (!data.Any()) { - if (itemType.IsPrimitive || itemType == typeof(String) || itemType == typeof(DateTime) || itemType.IsNumber()) + if (itemType.IsSimpleType()) maximumColumnNumber = _columnNumber; else maximumColumnNumber = _columnNumber + itemType.GetFields().Length + itemType.GetProperties().Length - 1; } - else if (itemType.IsPrimitive || itemType == typeof(String) || itemType == typeof(DateTime) || itemType.IsNumber()) + else if (itemType.IsSimpleType()) { foreach (object o in data) { @@ -835,7 +835,7 @@ { resetRecordPosition(); - if (m.GetType().IsPrimitive || m is String || m is DateTime || m is TimeSpan || m.IsNumber()) + if (m.GetType().IsSimpleType()) { if (addHeadings && !hasHeadings) { diff --git a/ClosedXML/Extensions.cs b/ClosedXML/Extensions.cs index 230170d..3ad5be4 100644 --- a/ClosedXML/Extensions.cs +++ b/ClosedXML/Extensions.cs @@ -314,6 +314,15 @@ || type == typeof(double) || type == typeof(decimal); } + + public static bool IsSimpleType(this Type type) + { + return type.IsPrimitive + || type == typeof(String) + || type == typeof(DateTime) + || type == typeof(TimeSpan) + || type.IsNumber(); + } } internal static class ObjectExtensions