g
/// <summary>/// 合并多个word文档(合并到第一文件)/// </summary>/// <param name="as_word_paths">word文档完整路径</param>/// <param name="breakNewPage">true(默认值),合并下一个文档前,自动换页</param>/// <returns>无</returns>
public void MergeWordFiles(string[] as_word_paths, bool breakNewPage = true){var ls_first_word = as_word_paths.Length > 0 ? as_word_paths[0] : "";if (ls_first_word.fn_isempty()){return;}using (WordprocessingDocument doc = WordprocessingDocument.Open(ls_first_word, true)){var mainPart = doc.MainDocumentPart;for (var i = 1; i < as_word_paths.Length; i++){var altChunkId = "cid_" + Guid.NewGuid().ToString().Replace("-", "");var chunk = mainPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.WordprocessingML, altChunkId);//mainPart.Document.Save();using (FileStream fileStream = File.Open(as_word_paths[i], FileMode.Open)){chunk.FeedData(fileStream);}var altChunk = new DocumentFormat.OpenXml.Wordprocessing.AltChunk();altChunk.Id = altChunkId;//添加下一页(下一个文档合并此页)if (breakNewPage){Paragraph newPage = new Paragraph(new Run(new Break() { Type = BreakValues.Page }));mainPart.Document.Append(newPage, altChunk);}else{mainPart.Document.Append(altChunk);}//mainPart.Document.Body.Append(altChunk);}//mainPart.Document.Body.InsertAfter(altChunk, mainPart.Document.Body.Elements<DocumentFormat.OpenXml.Wordprocessing.Paragraph>().Last());mainPart.Document.Save();}}
详情了解...