9
votes

I want to know if this could be done.

I am building a data dictionary for our software system (school project), and I'm thinking of an automated way to do this. Basically I don't use much of Microsoft Word (2007), I only use it in documenting schools stuff, etc. I want to know if its possible to create/edit a Word document programmatically from a template.

The idea is, I will create a page on Word that contains an empty form that will be repeated on every page. For every data that I will input to my program, it will update the corresponding field in the form and skips to the next form.

The purpose of this, is to eliminate copy-paste methods (my habit) and to speed things up when doing the documentation.

6

6 Answers

5
votes

Not exactly sure what you really want, but creating word documents with c# shouldn't be any problem:

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

5
votes

Word automation, as suggested by others, will lead you to a world of hurt for two major reasons:

  1. Office is not intended to be run unattended, so it can pop up message boxes at any time, and
  2. It is (probably) not licensed to enable office functionality for computers which don't have it. If you generate a Word document on a web site using automation, you have to make sure that this functionality cannot be reached by computers which don't have office installed (unless they changed this rule in the last years).

I have used Aspose.Words, it costs a little, but it works well and is intended for this.

4
votes

If i find out your purpose correctly you need to visit this microsoft msdn link

Manipulating Word 2007 Files with OpenXML

2
votes

Definitely possible. A fairly easy way of doing it using Office Automation. See this KB article for a basic sample: How to automate Microsoft Word to create a new document by using Visual C#

I think the main difference to that sample will be that you'll open your template and do SaveAs instead of creating a new document, but I can't remember exactly.

However, depending on your exact requirements, there might be better alternatives. For example, it's not recommended to do Office Automation on servers (including on webservers), so if that's needed you might want to look at something else.

0
votes

Using COM programming is not the best way as mentioned by erikkallen, I suggest using OPEN XML. It is really easy to use and your document generation operation will be very fast.

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