我想在Microsoft Office Word中創建約600個報表。這些文檔將填充來自數據庫的數據以及本地驅動器上的映像。 我已經想通了,我可以在Visual Studio 2010中創建一個Word模板項目,並對模板進行編程,以便當您輸入單個值(id-number)時,它會自動填充整個文檔。如何通過模板以編程方式創建Word文檔
我相當確信這是可能的。唯一的問題是。如何遍歷數據庫中的所有條目,根據模板打開一個新文檔並設置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題爲對象中的文本文檔。
這將是添加引用矯枉過正什麼,他正在努力實現,字自動化/互操作是很容易爲這種情況做。 – BrokenGlass 2010-11-29 13:44:05
矯枉過正?一點也不。 OpenXML SDK易於使用,並且意味着完成此操作。在進行文字自動化/互操作時,您是否必須在服務器上安裝Word?使用OpenXML你不需要。 – 2010-11-29 13:58:27
再加上我想添加到Moontear的評論,OpenXML格式只是XML它如此之快,他正在試圖做什麼(生成600文檔) – Shuwaiee 2010-11-29 14:40:29