1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【Spire.Doc】合并 Word 文档 将多个文档合并为一个

【Spire.Doc】合并 Word 文档 将多个文档合并为一个

时间:2021-07-18 17:05:59

相关推荐

【Spire.Doc】合并 Word 文档 将多个文档合并为一个

使用C#

在文档后添加新页合并

private void SaveToFileInsertText(string sourcePath, string insertPath, string saveToPath){Document doc = new Document(sourcePath);doc.InsertTextFromFile(insertPath, FileFormat.Docx);doc.SaveToFile(saveToPath, FileFormat.Docx);doc.Close();}

Spire版本:5.1

百度云下载:

链接:/s/1_YijYkjogH1bZ30gbpFMCQ

提取码:k5zn

相关连接:/article//8/21/28382.html

扩展

将一个文件夹的多个文档合并为一个文档

合成方法:

将文件夹中的文档两两合并,比如第一次时,第1个和第2个合并,第3个和第4个合并,依次类推;第2次时,将第一次的合并好的文件,按照第一次合并的方法,再次合并,直到只有一个文件,即合并完成。

合并过程,需要对中间文件进行规范命名,才可以认出是哪一次合并生成的文件,再进行下一步的合并。

例如,本次测试有36个文件,共合并6次,中间会产生一些中间文件,当合成到只有一个文件时,即完成

代码:

/// <summary>/// 合并报告,高效率/// </summary>/// <param name="tableNamePath">所有文档路径</param>/// <param name="combineDoc">最后文档保存路径</param>public void CombineDoc(string tableNamePath, string combineDoc){int num = 1;while (true){DirectoryInfo root = new DirectoryInfo(tableNamePath);FileInfo[] files = root.GetFiles();if (num != 1){files = files.Where(d => d.FullName.Contains("-" + (num - 1) + "-")).ToArray();}//当只有一个文件时,为最终结果if (files.Length == 1){SaveToFile(files[0].FullName, combineDoc);Console.WriteLine("合并文档... 【" + tableNamePath + "】 完成...");break;}//判断文件数量是否为偶数bool isEven = files.Length % 2 == 0;if (isEven){for (int i = 0; i < files.Length; i += 2){SaveToFileInsertText(files[i].FullName, files[i + 1].FullName, bine(tableNamePath, "report-" + num + "-" + i / 2 + ".docx"));}}else{for (int i = 0; i < files.Length - 1; i += 2){SaveToFileInsertText(files[i].FullName, files[i + 1].FullName, bine(tableNamePath, "report-" + num + "-" + i / 2 + ".docx"));}SaveToFile(files[files.Length - 1].FullName, bine(tableNamePath, "report-" + num + "-" + (files.Length - 1) / 2 + ".docx"));}Console.WriteLine("合并文档... 【" + tableNamePath + "】 第" + num + "次 完成...");num++;}}/// <summary>/// 保存文档/// </summary>private void SaveToFile(string sourcePath, string saveToPath){Document doc = new Document(sourcePath);doc.SaveToFile(saveToPath, FileFormat.Docx);doc.Close();}/// <summary>/// 合并两个文档,并保存为另一个文档/// </summary>private void SaveToFileInsertText(string sourcePath, string insertPath, string saveToPath){Document doc = new Document(sourcePath);doc.InsertTextFromFile(insertPath, FileFormat.Docx);doc.SaveToFile(saveToPath, FileFormat.Docx);doc.Close();}

完成...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。