에 필드를 편지 병합합니다. 나는 다음에 내 응용 프로그램에서 호출보내기 텍스트 난 그냥 내가이 작업을 얻을 수 있습니다 테스트하는 현재 단일 MERGEFIELD로 설정 한 간단한 워드 템플릿에 텍스트를 보내려면 다음 코드를 사용하고 마이크로 소프트 워드 2010
public static void ReplaceMailMergeField(string pWordDoc, string pMergeField, string pValue)
{
object docName = pWordDoc;
object missing = Missing.Value;
Word.MailMerge mailMerge;
Word._Document doc;
Word.Application app = new Word.Application();
app.Visible = false;
doc = app.Documents.Open(ref docName, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing);
mailMerge = doc.MailMerge;
foreach (Word.MailMergeField f in mailMerge.Fields)
{
if (f.Code.Text.IndexOf("MERGEFIELD \"" + pMergeField + "\"") > -1)
{
f.Select();
app.Selection.TypeText(pValue);
}
}
object saveChanges = Word.WdSaveOptions.wdSaveChanges;
doc.Close(ref saveChanges, ref missing, ref missing);
app.Quit(ref missing, ref missing, ref missing);
}
:
string pWordDoc = @"C:\Users\Pete-Laptop\Documents\CMS Document Mangement\Word Template.dotx";
cDocument.ReplaceMailMergeField(pWordDoc, "fieldAddress1", "Put address here!");
을하지만 아무 일도 일어나지 않는다 다음과 같이
내가 사용하고있는 코드입니다. 코드를 단계별로 실행하면 app.Documents.Open까지 도달 한 후 고정 된 것처럼 보입니다. 응용 프로그램이 내 Word 문서를 찾을 수 없기 때문에 이것이라고 생각합니다. 전체 파일 경로를 파일 이름 매개 변수로 보내는 것이 맞습니까? 그렇지 않다면 응용 프로그램이 내 Word 서식 파일을 찾을 수있는 방법은 무엇입니까?
이렇게 winform 응용 프로그램을 빌드 할 것입니다. 아이디어를 제공해 주셔서 감사합니다. –