Как программно создавать документы Word из шаблона

Я пытаюсь создать около 600 отчетов в Microsoft Office Word. Документы заполняются данными из базы данных и изображениями, найденными на локальном диске. Я понял, что могу создать проект Word Template в Visual Studio 2010 и запрограммировать шаблон так, чтобы при вводе единственного значения (id-number) он автоматически заполнял весь документ.

Я вполне уверен, что это возможно. единственная проблема. Как пройти через все записи в базе данных, открыть новый документ на основе шаблона и установить значение id?

for(int i = 0; i < idnumbers.Count(); i++)
{
     Word.Application app = new Word.Application();
     Word.Document doc = app.Documents.Add(@"C:\..\WordGenerator\bin\Debug\WordTemplate.dotx");
     //input the id-number below: HOW??

     doc.SaveAs(FileName: @"c:\temp\test.docx"); 
}

Предполагается, что приложение запускается только один раз, генерируя отчеты, и это не обязательно быстро. Его просто должно быть легко разработать.

Проблема в том, что кажется, что объект DocumentBase недоступен вне проекта Word. Заменитель Microsoft.Office.Interop.Word.Document не имеет таких функций, как SelectContentControlsByTitle, которые позволяют мне находить и устанавливать мои ContentControls. И это именно то, что мне нужно сделать. Word.Application app = new Word.Application ();

        Word.Document doc = app.Documents.Add(@"C:\..\test.dotx");

        foreach (Word.ContentControl cc in doc.SelectContentControlsByTitle("MyCCTitle"))
        {
            cc.Range.Text += "1234";
        }

        doc.SaveAs(FileName: @"c:\temp\test.docx");

Затем обработчик событий в моем шаблоне на BeforeSave заполняет документ на основе текста в объекте MyCCTitle-title.

17
задан Jesper Kihlberg 30 November 2010 в 19:58
поделиться