我在阅读一些帖子时提到了Populate word文档,但我需要使用C#填充word文档(Office 2007)。例如,我想要一个带有标签[NAME]的word文档,在C#中使用该标签来放置我的值,并在ASP.NET MVC3控制器中完成所有这些操作。有什么想法吗?
答案 0 :(得分:3)
您可以使用Microsoft提供的OpenXML SDK来操作Word文档。这里有一个nice article(实际上是3篇文章中的第三篇),有几个例子。
答案 1 :(得分:0)
你可以这样做: - 介绍" signets"进入Word文档模板 - 处理您的单词模板的副本 - 修改c#代码中的signets值并保存或打印文件。
如果您在应用程序中处理多个文档,请小心释放您的文字处理:)
答案 2 :(得分:0)
从问题中提取OP的解决方案:
我发现的解决方案是:
static void Main(string[] args) { Console.WriteLine("Starting up Word template updater ..."); //get path to template and instance output string docTemplatePath = @"C:\Users\user\Desktop\Doc Offices XML\earth.docx"; string docOutputPath = @"C:\Users\user\Desktop\Doc Offices XML\earth_Instance.docx"; //create copy of template so that we don't overwrite it File.Copy(docTemplatePath, docOutputPath); Console.WriteLine("Created copy of template ..."); //stand up object that reads the Word doc package using (WordprocessingDocument doc = WordprocessingDocument.Open(docOutputPath, true)) { //create XML string matching custom XML part string newXml = "<root>" + "<Earth>Outer Space</Earth>" + "</root>"; MainDocumentPart main = doc.MainDocumentPart; main.DeleteParts<CustomXmlPart>(main.CustomXmlParts); //MainDocumentPart mainPart = doc.AddMainDocumentPart(); //add and write new XML part CustomXmlPart customXml = main.AddCustomXmlPart(CustomXmlPartType.CustomXml); using (StreamWriter ts = new StreamWriter(customXml.GetStream())) { ts.Write(newXml); } //closing WordprocessingDocument automatically saves the document } Console.WriteLine("Done"); Console.ReadLine(); }