使用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();}
完成...