簡體   English   中英

C#中的Word郵件合並向導

[英]Word Mail Merge Wizard in C#

我有一個任務需要在Word(2016)中執行郵件合並。 我需要執行普通的郵件合並,但是我需要在不使用Outlook的情況下進行一些自定義的電子郵件發送。 我真的很想使用內置的郵件合並向導,因為它對我們的用戶很熟悉,但是我找不到調用該向導的方法。 我找到了VBA的ShowWizard方法,但C#卻沒有。 可以使用VSTO C#訪問郵件合並向導嗎? 有沒有更好的方法可以實現目標?

首先,我建議您不要使用VBA或Interop庫。 兩者都只能在裝有MS Office的計算機上運行。 使用VBA應用程序時,當具有不同版本的Office的用戶將運行它們以及具有新更新時,您可能會遇到問題。 還已知Interop在服務器方案中存在問題。

對於郵件合並,從基於OpenXML的第三方工具包中選擇一種可能是有意義的,因此它們可以在沒有MS Office的情況下運行(請考慮服務器方案)。 您將需要帶有占位符的MS Word模板文檔以獲取數據。 然后,您可以使用c#加載報告的數據,並將數據與模板合並以獲取最終文檔(docx,pdf,xps或圖像格式)。 這是一個這樣的工具箱使用的代碼,用於將數據庫中的數據與模板合並以獲得pdf文檔。

IEnumerable<Customer> customers = DataAccess.GetCustomerById(15);
DocumentGenerator dg = new DocumentGenerator(customers);
DocumentGenerationResult result = dg.GenerateDocument("MyTemplate.docx", "MyReport.pdf");

在此鏈接上,您可以找到更多信息和示例。

到目前為止,您已經可以生成郵件合並文檔。 現在到您的第二個問題,即郵寄這些文件。

我假設您的電子郵件服務器基於MS Exchange。 較新版本的MS Exchange Server公開了可以從客戶端使用的Web服務,而無需安裝Outlook。

有一些循序漸進的教程,例如https://msdn.microsoft.com/zh-cn/library/office/dn567668(v=exchg.150).aspx ,它將幫助您入門。 您將能夠編寫將完全控制發送郵件消息的所有方面的應用程序。 我為我們公司做了一個簡單的郵件發送庫。 我花了一些時間來弄清它的來龍去脈,但是現在這是一成不變的事情。 它運行平穩,沒有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM