我想將各種類型的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>
我真的只需要提取員工數據,所以也許有一個更簡單的方法來做到這一點?
[編輯說:我不能得到的第一個例子,以正確的格式,但我敢肯定,你會明白我的意思。]
Excel.Workbooks .OpenXML返回工作簿而不是工作表 – 2015-02-24 10:29:17