diff --git a/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/Excel/XLWorkbook_Save.cs
index 7604838..1fde9bd 100644
--- a/ClosedXML/Excel/XLWorkbook_Save.cs
+++ b/ClosedXML/Excel/XLWorkbook_Save.cs
@@ -2227,8 +2227,11 @@
rowItems.AppendChild(new RowItem());
}
- rowItems.Count = Convert.ToUInt32(rowItems.Count());
- pivotTableDefinition.AppendChild(rowItems);
+ if (rowItems.Any())
+ {
+ rowItems.Count = Convert.ToUInt32(rowItems.Count());
+ pivotTableDefinition.AppendChild(rowItems);
+ }
if (!pt.ColumnLabels.Any(cl => cl.CustomName != XLConstants.PivotTableValuesSentinalLabel))
{
@@ -2312,8 +2315,11 @@
dataFields.AppendChild(df);
}
- dataFields.Count = Convert.ToUInt32(dataFields.Count());
- pivotTableDefinition.AppendChild(dataFields);
+ if (dataFields.Any())
+ {
+ dataFields.Count = Convert.ToUInt32(dataFields.Count());
+ pivotTableDefinition.AppendChild(dataFields);
+ }
pivotTableDefinition.AppendChild(new PivotTableStyle
{
diff --git a/ClosedXML_Tests/ClosedXML_Tests.csproj b/ClosedXML_Tests/ClosedXML_Tests.csproj
index 982cdf2..24429b8 100644
--- a/ClosedXML_Tests/ClosedXML_Tests.csproj
+++ b/ClosedXML_Tests/ClosedXML_Tests.csproj
@@ -70,6 +70,7 @@
+
diff --git a/ClosedXML_Tests/Examples/PivotTableTests.cs b/ClosedXML_Tests/Examples/PivotTableTests.cs
new file mode 100644
index 0000000..5a1d061
--- /dev/null
+++ b/ClosedXML_Tests/Examples/PivotTableTests.cs
@@ -0,0 +1,15 @@
+using ClosedXML_Examples;
+using NUnit.Framework;
+
+namespace ClosedXML_Tests.Examples
+{
+ [TestFixture]
+ public class PivotTableTests
+ {
+ [Test]
+ public void PivotTables()
+ {
+ TestHelper.RunTestExample(@"PivotTables\PivotTables.xlsx");
+ }
+ }
+}
diff --git a/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs b/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs
index 0ca0d40..f61b84b 100644
--- a/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs
+++ b/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs
@@ -1,5 +1,6 @@
-using ClosedXML_Examples;
+using ClosedXML.Excel;
using NUnit.Framework;
+using System.IO;
namespace ClosedXML_Tests
{
@@ -9,7 +10,24 @@
[Test]
public void PivotTables()
{
- TestHelper.RunTestExample(@"PivotTables\PivotTables.xlsx");
+ using (var stream = TestHelper.GetStreamFromResource(TestHelper.GetResourcePath(@"Examples\PivotTables\PivotTables.xlsx")))
+ using (var wb = new XLWorkbook(stream))
+ {
+ var ws = wb.Worksheet("PastrySalesData");
+ var table = ws.Table("PastrySalesData");
+
+ var range = table.DataRange;
+ var header = ws.Range(1, 1, 1, 3);
+ var dataRange = ws.Range(header.FirstCell(), range.LastCell());
+
+ var ptSheet = wb.Worksheets.Add("BlankPivotTable");
+ var pt = ptSheet.PivotTables.AddNew("pvt", ptSheet.Cell(1, 1), dataRange);
+
+ using (var ms = new MemoryStream())
+ {
+ wb.SaveAs(ms, true);
+ }
+ }
}
}
}