diff --git a/src/MiniWord/MiniWord.Implment.cs b/src/MiniWord/MiniWord.Implment.cs index 48fa3112609876efcf354d49c76a4669db3a9b3f..24e1ad8cdc2fc993f29cde402950bd2e68ae642e 100644 --- a/src/MiniWord/MiniWord.Implment.cs +++ b/src/MiniWord/MiniWord.Implment.cs @@ -1,4 +1,4 @@ -namespace MiniSoftware +namespace MiniSoftware { using DocumentFormat.OpenXml; using DocumentFormat.OpenXml.Packaging; @@ -29,10 +29,12 @@ private static void SaveAsByTemplateImpl(Stream stream, byte[] template, Diction ms.Position = 0; using (var docx = WordprocessingDocument.Open(ms, true)) { - foreach (var hdr in docx.MainDocumentPart.HeaderParts) - hdr.Header.Generate(docx, value); - foreach (var ftr in docx.MainDocumentPart.FooterParts) - ftr.Footer.Generate(docx, value); + var hc = docx.MainDocumentPart.HeaderParts.Count(); + var fc = docx.MainDocumentPart.FooterParts.Count(); + for (int i = 0; i < hc; i++) + docx.MainDocumentPart.HeaderParts.ElementAt(i).Header.Generate(docx, value); + for (int i = 0; i < fc; i++) + docx.MainDocumentPart.FooterParts.ElementAt(i).Footer.Generate(docx, value); docx.MainDocumentPart.Document.Body.Generate(docx, value); docx.Save(); } @@ -460,7 +462,7 @@ private static void ReplaceText(OpenXmlElement xmlElement, WordprocessingDocumen } if (newText.IsNotBlank()) { - var vs = newText.Split(new char[] { '\r', '\n' }); + var vs = newText.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries); var currentT = t; var isFirst = true; foreach (var v in vs)