2015-02-24 69 views
1

我想將各種類型的XML文件讀入Excel,以便用戶可以進行分析和報告。我可以手動執行此操作(文件|打開,選擇文件,選擇作爲只讀工作簿),但是這個代碼給我一個錯誤:以編程方式將XML文件讀入工作簿

Dim oExcel As New Excel.Application 
Dim oBook As New Excel.Worksheet 
oExcel = CreateObject("Excel.Application") 
oBook = oExcel.Workbooks.OpenXML(readFiles.Item(thisFile), , LoadOption:=1) 

的錯誤是

An unhandled exception of type 'System.InvalidCastException' occurred in GFF Translator.exe

Additional information: Unable to cast COM object of type 'System.__ComObject' to interface type 'Microsoft.Office.Interop.Excel.Worksheet'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{000208D8-0000-0000-C000-000000000046}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

XML是以不同的格式,但包含許多節點,後面是一系列員工節點。

  • 我的(截)的例子是這樣的

    我的測試LTDMY TEST LIMITE 我的測試LTD(NONE)先生。 先生。 先生。

或thi s:

<?xml version="1.0" encoding="UTF-8"?> 
<GovTalkMessage xmlns="http://www.govtalk.gov.uk/CM/envelope"> 
<EnvelopeVersion>2.0</EnvelopeVersion> 
<Header><MessageDetails><Class>HMRC-PAYE-RTI-FPS</Class><CorrelationI 
<SenderDetails><IDAuthentication><SenderID>PRODUCT</SenderID></IDAuth 
</Header> 
<Body><IRenvelope xmlns="http://www.govtalk.gov.uk/taxation/PAYE/RTI/ 
<FullPaymentSubmission><EmpRefs><OfficeNo>123</OfficeNo><PayeRef>ABC1 
<Employee><EmployeeDetails><NINO>AA112233D</NINO><Name><Fore>AILEEN.. 
<Employee><EmployeeDetails><NINO>BB112233D</NINO><Name><Fore>BEATA... 
<Employee><EmployeeDetails><NINO>CC112233D</NINO><Name><Fore>CERYS... 
</FullPaymentSubmission></IRenvelope></Body></GovTalkMessage> 

我真的只需要提取員工數據,所以也許有一個更簡單的方法來做到這一點?

[編輯說:我不能得到的第一個例子,以正確的格式,但我敢肯定,你會明白我的意思。]

+0

Excel.Workbooks .OpenXML返回工作簿而不是工作表 – 2015-02-24 10:29:17

回答

0

已分配的結果給錯了對象。 Excel.Workbooks.OpenXML方法返回一個Excel工作簿,而不是一個Excel工作表

變化 昏暗oBook作爲新Excel.Worksheet昏暗oBook作爲新Excel.Workbook,並嘗試

+0

Duh!無法看到樹木的木材...我的意思是把它設置爲一個工作簿,你可以從變量中看出來! – 2015-02-24 11:16:43

相關問題