gpt4 book ai didi

c# - Microsoft Open XML SDL 2.0 将文档附加到模板文档 asp.net c#

转载 作者:行者123 更新时间:2023-11-30 19:16:53 25 4
gpt4 key购买 nike

我的 asp.net c# web 应用程序通过用数据填充现有模板 word 文档来创建 word 文档。现在我需要在该文档中添加更多现有文档作为下一页。

例如:我的模板有两个页面。我需要附加的文档只有一页。结果我想得到一个 3 页的 word 文档。

如何使用 Microsoft Open XML SDK 2.0 将文档附加到 asp.net/c# 中的现有 word 文档?

最佳答案

使用这段代码合并两个文档

using System.Linq;
using System.IO;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
namespace altChunk
{
class Program
{
static void Main(string[] args)
{
string fileName1 = @"c:\Users\Public\Documents\Destination.docx";
string fileName2 = @"c:\Users\Public\Documents\Source.docx";
string testFile = @"c:\Users\Public\Documents\Test.docx";
File.Delete(fileName1);
File.Copy(testFile, fileName1);
using (WordprocessingDocument myDoc =
WordprocessingDocument.Open(fileName1, true))
{
string altChunkId = "AltChunkId1";
MainDocumentPart mainPart = myDoc.MainDocumentPart;
AlternativeFormatImportPart chunk =
mainPart.AddAlternativeFormatImportPart(
AlternativeFormatImportPartType.WordprocessingML, altChunkId);
using (FileStream fileStream = File.Open(fileName2, FileMode.Open))
chunk.FeedData(fileStream);
AltChunk altChunk = new AltChunk();
altChunk.Id = altChunkId;
mainPart.Document
.Body
.InsertAfter(altChunk, mainPart.Document.Body
.Elements<Paragraph>().Last());
mainPart.Document.Save();
}
}
}
}

这完美地工作并且同样的代码也可用 here .

还有另一种方法使用 Open XML PowerTools

关于c# - Microsoft Open XML SDL 2.0 将文档附加到模板文档 asp.net c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21017317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com