2012-06-11 3 views
0

에서 데이터 소스에 연결하는 Word 문서 열기 I 지정된 위치에 Word에서 문서를 여는 기능이 있습니다는 병합 필드 포함하고 C#

static void OpenWordDocument(string fileName) 
{ 
Type applicationType = Type.GetTypeFromProgID("Word.Application"); 
object applicationObject = Activator.CreateInstance(applicationType); 

object documentsObject = applicationType.InvokeMember("Documents", System.Reflection.BindingFlags.GetProperty, null, applicationObject, null); 
applicationType.InvokeMember("Visible", System.Reflection.BindingFlags.SetProperty, null, applicationObject, new object[] { true }); 

Type documentsType = documentsObject.GetType(); 
object documentObject = documentsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, documentsObject, new Object[] { fileName }); 
} 

그것은 오피스 2003 잘 작동하지만 열 때 Office 2010을 사용하는 시스템의 문서는 문서가 데이터 소스에 연결할 수없는 것 같습니다. 이 문제의 원인은 무엇일까요? 연결을 차단할 수있는 문서를 열 때 속성이 누락 되었습니까?

답변

0

우리는 해결의 비트 ~

오히려 Interop 어셈블리를 통해 이동 및 Word의 인스턴스를 만드는 것보다, 우리가 문서를 연 .BAT 파일을 실행하는 프로세스를 생성하여 그것을 해결 : X

static void OpenWordDocument() 
{ 
System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.EnableRaisingEvents = false; 
proc.StartInfo.FileName = @"fileName.bat"; 
proc.Start(); 
} 

이것은 이상적인 솔루션이 아니므로 다른 해결책도 좋습니다.

1

다음 문서에서 설명하는대로 Word 2010 레지스트리 항목을 삽입 했습니까?

http://support.microsoft.com/kb/825765

I.e.you 이미 나는이 조사해야 2003

+0

에 대한 올바른 항목을 가질 수있다. 정보 주셔서 감사합니다 – mechaman64