나는 사용자 기준에 따라 AS400 데이터를 쿼리하고 ListView 컨트롤에서 결과를 반환하는 간단한 C# Winforms 응용 프로그램을 작성했습니다. Button_Click()에서 헤더 및 데이터를 .txt 파일에 저장합니다. 아래 편지 병합 Word 문서의 DataSource로 .txt 파일을 사용하려고합니다.oWord.Documents.Open (oTemplatePath)에서 프로그램이 멈 춥니 다?
코드가 oWrdDoc = oWord.Documents.Open(oTemplatePath);
에 도달하면 프로그램이 멈추는 것 같습니다. 아무 것도 일어나지 않아 다음 라인으로 넘어갈 수 없습니다. 누구든지 제가 잘못하고있는 것에 대한 아이디어가 있습니까?
public void Print(string docLoc, string docSource)
{
try
{
Word.Application oWord = new Word.Application();
Word.Document oWrdDoc = new Word.Document();
oWord.Visible = true;
Object oTemplatePath = "C:\\Users\NAME\\Desktop\\B-AIAddChgDual10-06-NEW.doc";
oWrdDoc = oWord.Documents.Open(oTemplatePath);
Object oMissing = System.Reflection.Missing.Value;
oWrdDoc.MailMerge.OpenDataSource("C:\\Users\\NAME\\Desktop\\Test2.txt", oMissing, oMissing, oMissing,
oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);
oWrdDoc.MailMerge.Execute();
}
catch (Exception ex)
{
MessageBox.Show("Source:\t" + ex.Source + "\nMessage: \t" + ex.Message + "\nData:\t" + ex.Data);
}
finally
{
//
}
}
편집 : 나는 인스턴스가 파일을 말하는 대화 상자를 가져 너무 Visible = true
로 설정 한 새 Word 인스턴스를하지 않았다 (에 의해 자신 ???) 편집을 위해 잠겨 밝혀 그것은이었다 이전에는 볼 수 없었던 읽기 전용 버전을 열어서 모든 것이 처리 과정에서 멈추는 것처럼 보이게했습니다. 변경 사항을 반영하기 위해 위의 코드를 수정했습니다.
내 자신의 파일이 잠겨있는 이유에 대한 아이디어와이를 방지하는 방법은 무엇입니까?
이 내가 (순서대로) 읽기 전용 문서를 엽니 다 받아들이 후받는 대화 상자입니다
선택한 후 방법 위의 필드를 바꿉니다 :
원본 메일 병합 필드 : 개인 선택 후
: '!'
를 내가 말씀 응용 프로그램이 사용하는 말할까요 어떻게 문자를 필드 구분 기호로 C# 코드에서?
또한 대화 상자를 어떻게 진행합니까? 편지 병합 필드로 나열된 필드가 포함되지 않은 데이터 소스로 인해 각각 하나씩 수신한다고 가정합니다.
-fuldate -sys -memno -name -address1 -address2 -address3 -sal
그리고 여기 내 구분 된 필드입니다 : 여기
내 편지 병합 필드입니다 내 .txt 데이터 소스 파일에서 :
memno! 이름! addr1! addr2! city! state! zip! o ld_addr1! old_addr2! old_city! old_state!old_zip
당신은True
에 OpenAndRepair
모드를 설정 한 다음 문서를 열 수 있습니다
을 당신이 사용하는 사무실? –
2010. EDIT를 검토하고 싶다면 초기 문제가 해결되었습니다. –