diff --git a/ClosedXML/Excel/XLWorkbook_Load.cs b/ClosedXML/Excel/XLWorkbook_Load.cs index c0274cc..67d1937 100644 --- a/ClosedXML/Excel/XLWorkbook_Load.cs +++ b/ClosedXML/Excel/XLWorkbook_Load.cs @@ -452,8 +452,9 @@ var pivotTableDefinition = pivotTablePart.PivotTableDefinition; var target = ws.FirstCell(); - if (pivotTableDefinition.Location != null && pivotTableDefinition.Location.Reference != null && pivotTableDefinition.Location.Reference.HasValue) + if (pivotTableDefinition?.Location?.Reference?.HasValue ?? false) { + ws.Range(pivotTableDefinition.Location.Reference.Value).Clear(XLClearOptions.Contents); target = ws.Range(pivotTableDefinition.Location.Reference.Value).FirstCell(); } diff --git a/ClosedXML/Excel/XLWorkbook_Save.cs b/ClosedXML/Excel/XLWorkbook_Save.cs index 939df1a..61ddb9e 100644 --- a/ClosedXML/Excel/XLWorkbook_Save.cs +++ b/ClosedXML/Excel/XLWorkbook_Save.cs @@ -2774,13 +2774,14 @@ var pivotTableDefinitionExtensionList = new PivotTableDefinitionExtensionList(); - var pivotTableDefinitionExtension = new PivotTableDefinitionExtension - { Uri = "{962EF5D1-5CA2-4c93-8EF4-DBF5C05439D2}" }; - pivotTableDefinitionExtension.AddNamespaceDeclaration("x14", - "http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); + var pivotTableDefinitionExtension = new PivotTableDefinitionExtension { Uri = "{962EF5D1-5CA2-4c93-8EF4-DBF5C05439D2}" }; + pivotTableDefinitionExtension.AddNamespaceDeclaration("x14","http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"); var pivotTableDefinition2 = new DocumentFormat.OpenXml.Office2010.Excel.PivotTableDefinition - { EnableEdit = pt.EnableCellEditing, HideValuesRow = !pt.ShowValuesRow }; + { + EnableEdit = pt.EnableCellEditing, + HideValuesRow = !pt.ShowValuesRow + }; pivotTableDefinition2.AddNamespaceDeclaration("xm", "http://schemas.microsoft.com/office/excel/2006/main"); pivotTableDefinitionExtension.AppendChild(pivotTableDefinition2); diff --git a/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs b/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs index 2ea11de..5187f17 100644 --- a/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs +++ b/ClosedXML_Tests/Excel/PivotTables/XLPivotTableTests.cs @@ -291,6 +291,34 @@ } } + [Test] + public void ClearPivotTableTenderedTange() + { + // https://github.com/ClosedXML/ClosedXML/pull/856 + using (var stream = TestHelper.GetStreamFromResource(TestHelper.GetResourcePath(@"Other\PivotTableReferenceFiles\ClearPivotTableRenderedRangeWhenLoading\inputfile.xlsx"))) + using (var ms = new MemoryStream()) + { + using (var wb = new XLWorkbook(stream)) + { + var ws = wb.Worksheet("Sheet1"); + Assert.IsTrue(ws.Cell("B1").IsEmpty()); + Assert.IsTrue(ws.Cell("C2").IsEmpty()); + Assert.IsTrue(ws.Cell("D5").IsEmpty()); + wb.SaveAs(ms); + } + + ms.Seek(0, SeekOrigin.Begin); + + using (var wb = new XLWorkbook(ms)) + { + var ws = wb.Worksheet("Sheet1"); + Assert.IsTrue(ws.Cell("B1").IsEmpty()); + Assert.IsTrue(ws.Cell("C2").IsEmpty()); + Assert.IsTrue(ws.Cell("D5").IsEmpty()); + } + } + } + private static void SetFieldOptions(IXLPivotField field, bool withDefaults) { field.SubtotalsAtTop = !withDefaults; diff --git a/ClosedXML_Tests/Resource/Other/PivotTableReferenceFiles/ClearPivotTableRenderedRangeWhenLoading/inputfile.xlsx b/ClosedXML_Tests/Resource/Other/PivotTableReferenceFiles/ClearPivotTableRenderedRangeWhenLoading/inputfile.xlsx new file mode 100644 index 0000000..4d0d6aa --- /dev/null +++ b/ClosedXML_Tests/Resource/Other/PivotTableReferenceFiles/ClearPivotTableRenderedRangeWhenLoading/inputfile.xlsx Binary files differ