2012-09-17 2 views
3

내 Excel 워크 시트를 열려면 어떻게합니까? Microsoft Excel의 열린 인스턴스는 무엇입니까? 코드를 사용하면 Excel의 새 인스턴스가 열립니다.응용 프로그램에서 현재 Excel 인스턴스를 열려면 어떻게합니까?

public Excel.Application TryGetExistingExcelApplication() 
{ 
    try 
    { 
     object o = Marshal.GetActiveObject("Excel.Application"); 
     return (Excel.Application)o; 
    } 
    catch (COMException) 
    { 
     // Probably there is no existing Excel instance running, return null 
     return null; 
    } 
} 

당신이 실행중인 인스턴스에 대한 참조가 있으면, 당신은에 액세스 할 수 있습니다

private Excel.Application xlApp; 
private Excel.Workbook xlWorkBook; 
private Excel.Worksheet xlWorkSheet; 

xlApp = new Excel.Application(); 
xlApp.Visible = true; 

xlWorkBook = xlApp.Workbooks.Open(textBox1.Text); 
xlWorkSheet = (Excel.Worksheet)xlWorkBook.ActiveSheet; 
+1

나중에 참조 할 수 있도록 new 키워드는 일반적으로 특정 변수의 새 인스턴스를 열었습니다. 둘째, ** Running ** 엑셀 워크 시트를 열 수 없습니다. 마이크로 소프트는 그렇게하지 못하게합니다. 편집 할 때 Excel 파일을 열어야하며 메모리에서 가져 오는 것이 좋습니다. – TheGeekZn

+0

@NewAmbition 아니요, 실행중인 엑셀 워크 시트를 열 수 있습니다. – sloth

+0

보세요 [여기] (http://blogs.msdn.com/b/eric_carter/archive/2009/03/12/attaching-to-an-already-running-office-application-from-your-application- using-getactiveobject-or-bindtomoniker.aspx) – sloth

답변

2

당신은 (있는 경우) 실행중인 엑셀 인스턴스에 대한 참조를 얻기 위해 다음과 같은 것이 같은 것을 할 수 있습니다 그것은 통합 문서 모음입니다.

주의 사항 : 기존 Excel 인스턴스를 자동화하려고하면 "서버 사용 중"예외가 발생할 수 있습니다. 이를 피하려면 IOleMessageFilter 오류 처리기를 구현할 수 있습니다. This article은 Visual Studio를 자동화하는 방법을 설명합니다. 이 기술은 Excel 자동화와 동일합니다.

+0

도움을 주신 모든 분들께 감사드립니다. 좋은 하루 되세요. – azmodan

+0

IIS에서 게시 된 모드로 작동하지 않습니다. 그 이유가 무엇인지 알 수 있습니까? – AjayR

관련 문제