Microsoft.Office.Interop.Excel 어셈블리를 활용하는 클래스를 작성 중입니다. 이것은 자바 솔루션에서 사용될 "원 스톱 숍"DLL 라이브러리의 일부입니다 (자바 측의 인터페이스 양을 제한하기 위해).
다음과 같은 오류가 발생합니다.
추가 정보 : 'System .__ ComObject'유형의 COM 개체를 'Microsoft.Office.Interop.Excel.Worksheets'인터페이스 유형으로 캐스팅 할 수 없습니다. 다음 오류로 인해 IID가 '{000208B1-0000-0000-C000-000000000046}'인 인터페이스에 대한 COM 구성 요소의 QueryInterface 호출이 실패했기 때문에이 작업이 실패했습니다. 지원되는 인터페이스가 없습니다 (HRESULT에서 예외 : 0x80004002 (E_NOINTERFACE)). .
이것은 다음 코드에 의해 발생합니다.
Public Class XL
Public XL As Excel.Application = Nothing
Public XLN As String
Public WBS As Excel.Workbooks = Nothing
Public WBSN() As String
Public WB As Excel._Workbook = Nothing
Public WBN As String
Public WSS As Excel.Worksheets = Nothing
Public WSSN() As String
Public WS As Excel._Worksheet = Nothing
Public WSN As String
Public XLCelllValue As Object = Nothing
Public Sub New()
XL = New Excel.Application()
XL.Visible = True
WBS = XL.Workbooks
WB = WBS.Add()
WSS = WB.Worksheets '<this is the line that throws the exception
WS = WSS(1)
End Sub
End Class
내가 뭘 잘못하고 있는지 잘 모르겠습니다. 모든 속성이 공용으로 선언되고 Worksheets는 유효한 컬렉션이고 WB 속성 유형은 Excel._workbook이고 WSS 속성 유형은 Excel.worksheets입니다.
내가 놓친 아이디어가 있습니까?
사용 시트의 인스턴스를 :
Sheets 컬렉션에는 Chart 또는 Worksheet 개체가 포함될 수 있습니다. Sheets 컬렉션은 모든 유형의 시트를 반환하려는 경우에 유용합니다. 한 가지 유형의 시트로만 작업해야하는 경우 해당 시트 유형에 대한 개체 항목을 참조하십시오.
이를 염두에두고 다음 선언을 변경하십시오.
Public WSS As Excel.Worksheets = Nothing
에:
Public WSS As Excel.Sheets = Nothing
또한 DocEvents_Event 구성원에 대한 액세스 권한이없는 _Workbook 및 _Worksheet 를 사용 하고 있음 을 확인했습니다 .
당신은 사용을 고려해야 통합 문서 에서 상속 _Workbook
및 워크 시트를 하는 상속에서 _Worksheet
. 다음 멤버에 대한 액세스 권한을 제공하는 둘 다 Worksheet
및 Workbook
상속 DocEvents_Event
:
핸들러를 사용하고 싶지만 주목할 가치가 있다고 생각하는 경우에만 중요합니다.
마지막으로 작은 메모에서 Option Strict On을 켜야 합니다. 이렇게하면 더 나은 코드를 작성하고 컴파일 타임에 잠재적 인 런타임 오류를 생성하는 데 도움이됩니다. 이 유형의 코드 WS = WSS(1)
는 Option Strict On을 사용하면 다음과 같은 컴파일 오류가 발생합니다.
Option Strict On은 'Object'에서 'Microsoft.Office.Interop.Excel.Worksheet'로의 암시 적 변환을 허용하지 않습니다.
종종 컴파일러는 수정 사항을 제안하며이 경우 수정 사항은 다음과 같습니다.
WS = CType(WSS(1), Excel.Worksheet)
귀하의 경우 이것은 아마도 런타임 오류를 생성하지 않을 것이지만 Option Strict On을 사용하면 많은 슬픔을 줄일 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다