Skip to content

Commit 078dffd

Browse files
authored
Merge pull request #2255 from EPPlusSoftware/bug/issue2254
Fixes issue 2254
2 parents ede8683 + 639eded commit 078dffd

5 files changed

Lines changed: 29 additions & 14 deletions

File tree

src/EPPlus/Data/CustomXml/ExcelCustomXml.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,24 +107,25 @@ internal void Save(ExcelPackage pck)
107107
var nsm = CreateNsm();
108108
_xmlHelper = XmlHelperFactory.Create(nsm, PropertiesXml.DocumentElement.SelectSingleNode("ds:schemaRefs", nsm));
109109
}
110-
_xmlHelper.TopNode.InnerXml = "";
111-
foreach (var schemaRef in SchemasReferences)
110+
if (_xmlHelper != null)
112111
{
113-
XmlElement schemaRefNode = (XmlElement)_xmlHelper.CreateNode("ds:schemaRef");
114-
schemaRefNode.SetAttribute("uri", CreateNsm().LookupNamespace("ds"), schemaRef);
115-
_xmlHelper.TopNode.AppendChild(schemaRefNode);
112+
_xmlHelper.TopNode.InnerXml = "";
113+
foreach (var schemaRef in SchemasReferences)
114+
{
115+
XmlElement schemaRefNode = (XmlElement)_xmlHelper.CreateNode("ds:schemaRef");
116+
schemaRefNode.SetAttribute("uri", CreateNsm().LookupNamespace("ds"), schemaRef);
117+
_xmlHelper.TopNode.AppendChild(schemaRefNode);
118+
}
116119
}
117-
118-
var xmlSettings = new XmlWriterSettings() ;
120+
var xmlSettings = new XmlWriterSettings();
119121

120122
var stream = Part.GetStream(FileMode.Create, FileAccess.Write);
121123
var xmlWriter = XmlWriter.Create(stream, xmlSettings);
122124
CustomXml.Save(xmlWriter);
123125

124126
stream = PropertiesPart.GetStream(FileMode.Create, FileAccess.Write);
125-
xmlWriter = XmlWriter.Create(stream, xmlSettings);
127+
xmlWriter = XmlWriter.Create(stream, xmlSettings);
126128
PropertiesXml.Save(xmlWriter);
127-
128129
}
129130
}
130131
}

src/EPPlus/Data/CustomXml/ExcelCustomXmlCollection.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ internal void Add(ExcelCustomXml customXml)
6363
{
6464
_list.Add(customXml);
6565
}
66+
internal bool Contains(ExcelCustomXml customXml)
67+
{
68+
return _list.Contains(customXml);
69+
}
6670
internal void Remove(ExcelCustomXml customXml)
6771
{
6872
_package.ZipPackage.DeletePart(customXml.Part.Uri);

src/EPPlus/Data/PowerQuery/ExcelPowerQuerySettings.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -270,10 +270,11 @@ internal void Save(ExcelCustomXmlCollection customXml)
270270
}
271271

272272
cx.CustomXml.LoadXml($"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><DataMashup xmlns=\"{Schemas.schemaDataMashup}\">{Convert.ToBase64String(retMs.ToArray())}</DataMashup>");
273-
customXml.Add(cx);
273+
if (customXml.Contains(cx) == false)
274+
{
275+
customXml.Add(cx);
276+
}
274277
}
275-
276-
277278
private byte[] GetMetaDataBytes()
278279
{
279280
var bw = new BinaryWriter(new MemoryStream());

src/EPPlus/Style/ExcelTextFont.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ public void SetFromFont(string name, float size, bool bold = false, bool italic
310310
if (bold) Bold = bold;
311311
if (italic) Italic = italic;
312312
if (underline) UnderLine = eUnderLineType.Single;
313-
if (strikeout) Strike = eStrikeType.Single;
313+
if (strikeout) Strike = eStrikeType.Single;
314314
}
315315
}
316316
}

src/EPPlusTest/Issues/TableIssues.cs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -410,5 +410,14 @@ public void RemoveAndReAddCalculatedColumnFormula()
410410
Assert.AreEqual("ROW()-1", sheet1.Cells["A2"].Formula);
411411
}
412412
}
413+
[TestMethod]
414+
public void s997()
415+
{
416+
using (var package = OpenTemplatePackage("s997.xlsx"))
417+
{
418+
var t = package.Workbook.Worksheets.First().Tables;
419+
SaveAndCleanup(package);
420+
}
421+
}
422+
}
413423
}
414-
}

0 commit comments

Comments
 (0)