2017-04-20 1 views
0

Word (2016)에서 편지 병합을 수행해야하는 작업이 있습니다. 정상적인 편지 병합을 수행해야하지만 Outlook을 사용하지 않고 맞춤 이메일을 보내야합니다. 사용자에게 친숙하기 때문에 기본 제공 편지 병합 마법사를 사용하고 싶지만 마법사를 호출하는 방법을 찾을 수 없습니다. VBA에 대한 ShowWizard 메서드를 찾았지만 C#에는 아무 것도 없습니다. VSTO C#을 사용하여 편지 병합 마법사에 액세스 할 수 있습니까? 목표를 달성 할 수있는 더 좋은 방법이 있습니까?C#의 Word 편지 병합 마법사

답변

0

먼저 VBA 또는 Interop 라이브러리를 사용하지 말 것을 권한다. 둘 다 MS Office가 설치된 컴퓨터에서만 실행할 수 있습니다. VBA 응용 프로그램을 사용하면 서로 다른 버전의 Office 사용자가 업데이트를 실행할 때와 새로운 업데이트가있을 때 문제가 발생할 수 있습니다. Interop은 또한 서버 시나리오에 문제가있는 것으로 알려져 있습니다.

메일 병합의 경우 OpenXML 기반의 타사 도구 키트 중 하나를 선택하면 MS Office없이 실행할 수 있습니다 (서버 시나리오 생각). 데이터에 대한 자리 표시자가있는 MS Word 템플리트 문서가 필요합니다. 그런 다음 C#을 사용하여 보고서 데이터를로드하고 템플릿과 데이터를 병합하여 최종 문서 (docx, pdf, xps 또는 이미지 형식)를 얻을 수 있습니다.

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

link에 더 많은 정보와 예제를 찾을 수 있습니다 여기에 PDF 문서를 얻을 수있는 템플릿을 사용하여 데이터베이스에서 데이터를 병합에 필요한 하나 개의 도구 키트에 사용되는 코드입니다.

지금까지 편지 병합 문서를 생성하는 방법이 있습니다. 이제 두 번째 문제로이 문서를 우편으로 보냅니다.

전자 메일 서버가 MS Exchange를 기반으로한다고 가정합니다. 최신 버전의 MS Exchange Server는 Outlook을 설치하지 않고도 클라이언트에서 사용할 수있는 웹 서비스를 제공합니다.

시작하는 데 도움이되는 https://msdn.microsoft.com/en-us/library/office/dn567668(v=exchg.150).aspx과 같은 몇 가지 단계별 자습서가 있습니다. 메일 메시지를 보내는 모든 측면을 완벽하게 제어 할 응용 프로그램을 작성할 수 있습니다. 우리 회사를위한 간단한 메일 보내기 라이브러리를 작성했습니다. 그것의 내면을 파악하는 데는 시간이 걸렸지 만, 이제는 놓치지 마세요. 아무 문제없이 원활하게 작동합니다.

+0

올바른 방향으로 나를 가리켜 주셔서 감사합니다. 권장할만한 무료 openxml 툴킷이 있습니까? Nuget에서 발견 한 OpenXML SDK를 살펴 보겠습니다. DOCX에서 HTML로 변환 할 수있는 도구가 있고 XLSX에서 데이터를 가져 오는 것 같습니다. 둘 다 필요합니다. – mack

+0

OpenXML SDK는 간단한 문서 조작이 필요한 경우에 유용합니다. 복잡한 템플릿으로 복잡한 문서 병합을 해결해야했습니다. 이를 달성하기에는 시간이 너무 제한되어 있으므로 제 3 자 라이브러리를 사용했습니다. –

관련 문제