我使用Word和OpenXml在C#ASP.NET Web应用程序中提供邮件合并功能:
1)上传包含许多预定义字符串的文档以进行替换.
2)使用OpenXML SDK 2.0我打开Word文档,将mainDocumentPart作为字符串并使用Regex执行替换.
3)然后我使用OpenXML创建一个新文档,添加一个新的mainDocumentPart并将替换产生的字符串插入到这个mainDocumentPart中.
但是,新文档中的所有格式/样式等都将丢失.
我猜我可以单独复制和添加样式,定义,注释部分等来模仿原始文档.
但是有没有一种方法使用Open XML复制文档,允许我在新副本上执行替换?
谢谢.
这个非常简单的事我找不到合适的技术.我想要的是打开.dotx模板,进行一些更改并保存为.docx扩展名相同的名称.我可以保存WordprocessingDocument但只能保存到它的加载位置.我尝试使用WordprocessingDocument手动构建一个新文档进行了更改,但到目前为止没有任何工作,我尝试了MainDocumentPart.Document.WriteTo(XmlWriter.Create(targetPath));,只是得到一个空文件.
这里有什么正确的方法?就SDK而言,.dotx文件是特别的还是只是另一个文档 - 我应该只是将模板复制到目的地,然后打开它并进行更改,然后保存?如果我的应用程序可以同时从两个客户端调用,我确实有一些问题,如果它可以打开两次相同的.dotx文件...在这种情况下创建一个副本将是明智的...但是为了我自己的好奇心,我仍然想要知道怎么做"另存为".