以编程方式编辑Microsoft Word文档

时间:2011-02-10 09:50:45

标签: c# .net ms-word

我想知道是否可以这样做。

我正在为我们的软件系统(学校项目)构建一个数据字典,我正在考虑一种自动化的方法。基本上我没有使用太多的Microsoft Word(2007),我只用它来记录学校的东西等等。我想知道是否有可能以编程方式从模板创建/编辑Word文档。

我的想法是,我将在Word上创建一个页面,其中包含将在每个页面上重复的空表单。对于我将输入到我的程序的每个数据,它将更新表单中的相应字段并跳到下一个表单。

这样做的目的是消除复制粘贴方法(我的习惯)并在执行文档时加快速度。

6 个答案:

答案 0 :(得分:5)

不完全确定你真正想要的是什么,但用c#创建word文档不应该有任何问题:

http://support.microsoft.com/kb/316384

答案 1 :(得分:5)

其他人建议的文字自动化会让你陷入一个受伤的世界,原因有两个:

  1. Office无意在无人看管的情况下运行,因此可以随时弹出消息框,并且
  2. (可能)没有许可为没有它的计算机启用办公功能。如果使用自动化在网站上生成Word文档,则必须确保未安装Office的计算机无法访问此功能(除非他们在过去几年中更改了此规则)。
  3. 我使用过Aspose.Words,费用不多,但效果很好而且适用于此。

答案 2 :(得分:4)

如果我正确找到你的目的,你需要访问这个microsoft msdn链接

Manipulating Word 2007 Files with OpenXML

答案 3 :(得分:2)

绝对有可能。使用Office Automation进行此操作的相当简单的方法。有关基本示例,请参阅此知识库文章:How to automate Microsoft Word to create a new document by using Visual C#

我认为该示例的主要区别在于您将打开模板并执行SaveAs而不是创建新文档,但我不记得确切。

但是,根据您的具体要求,可能会有更好的选择。例如,不建议在服务器上(包括在Web服务器上)执行Office Automation,因此如果需要,您可能需要查看其他内容。

答案 4 :(得分:0)

答案 5 :(得分:0)

使用COM编程并不是erikkallen提到的最佳方法,我建议使用OPEN XML。它非常易于使用,您的文档生成操作将非常快。

http://blog.goyello.com/2009/08/21/how-to-generate-open-xml-file-in-c-in-4-minutes/ http://msdn.microsoft.com/en-us/library/aa338205(V = office.12)的.aspx