2016-07-08 5 views
-1

새 C# Windows Forms 응용 프로그램을 만들었습니다. COM 참조 "Microsoft Excel 15.0 Object Library"를 프로젝트에 추가했습니다. 이 프로젝트는 엑셀 데이터를 데이터 세트로 가져 오기위한 것입니다. 나는 해냈다. 나는 내 컴퓨터에서 잘 작동한다. 다른 컴퓨터에서 exe 파일을 실행하면 아래 오류가 표시됩니다.C# Windows 응용 프로그램을 다른 컴퓨터에서 실행하지 못했습니다.

ERROR :

Unable to cast COM object of type Microsoft.Office.Interop.Excel.ApplicationClass’ to interface type ‘Microsoft.Office.Interop.Excel._Application’” This operation failed because the QueryInterface call on the COM component for the interface with IID '{{000208D5-0000-0000-C000-000000000046}' failed due to the following error: Error loading type library/DLL (Exception from HRESULT:0x80029C4A(TYPE_E_CANTLOADLIBRARY)).

+0

(재) 해당 컴퓨터에 Office를 설치에서 진정한 로컬 복사 = 설정하려고 . –

+0

interop을 사용하는 경우 대상 컴퓨터에 동일한 MS Office 버전을 설치해야합니다. – Jaxedin

+0

고맙습니다 @Dirk, @ Jaxedin 너무 많이, 내 오류를 해결, 만약 내가 많은 시스템에 내 모든 응용 프로그램을 실행하고 싶다면, 그 모든 시스템에 동일한 오피스 버전을 설치하는 더 나은 방법. –

답변

0

COM 구성 요소는 내 전문 아니다, 나는 너무 자주 사용하지 않습니다. 그러나 전에 경험 한 것을 말해 줄 것입니다. 저는 약 6 개월 전에 이것을 경험 했으므로 직장이 이상적이라고 생각하지 않았습니다.

일부 COM 구성 요소를 사용하려면 대상 컴퓨터 (이 경우 Excel/Office)에 종속성을 설치해야합니다. 대상 컴퓨터에 Excel이 설치되어 있는지 확인 했습니까?

그렇지 않은 경우 OLEDB 연결을 사용하여 Excel 파일을 읽을 수 있습니다. 나는 이것이 어떻게 구체적으로 이루어 졌는지 기억하지 못한다.

어쩌면 이것은 OLEDB 사용하여 Excel 파일을 읽고 어떤 방법으로 도움이 될 수 있습니다 : 당신의 proyect 참조에서 http://www.codeproject.com/Tips/705470/Read-and-Write-Excel-Documents-Using-OLEDB

+0

응답 해 주셔서 감사합니다.하지만 엑셀에 액세스하려면 com 참조 (Microsoft Excel 15.0 Object Library)를 사용하여 답변해야합니다. 공유 한 링크가 상당히 도움이됩니다. –

+0

@Jaxedin이 말했듯이 소프트웨어가 실행될 각 컴퓨터에서 사용할 수있는 Office 라이브러리와 똑같은 기능을 제공해야합니다. 확신 할 수 없다면 NetOffice http://netoffice.codeplex.com/을 사용하는 것이 좋습니다. MS Office 응용 프로그램의 스마트 래퍼로서 설치된 모든 버전에서 지원되는 리소스 만 사용하는 경우보다 편안한 조건을 제공합니다. . – VBobCat

+0

Thanks @VBobCat, U r 제안은 훌륭합니다. Netoffice wrapper가 제 오류를 해결할 수 있기를 바랍니다. 나는 이것을 시도 할 것이다. –

관련 문제