Excel中如何編寫VBA程序加載XML文件
Excel中如何編寫VBA程序加載XML文件
在Excel中,通過使用VBA程序,可以方便地實(shí)現(xiàn)XML文件的添加。實(shí)際上,通過VBA代碼向工作表導(dǎo)入XML文檔數(shù)據(jù)需要完成3個步驟。以下是學(xué)習(xí)啦小編為您帶來的關(guān)于Excel中編寫VBA程序加載XML文件的方法,希望對您有所幫助。
Excel中編寫VBA程序加載XML文件的方法
1、新建Excel文件,打開Visual Basic編輯器。選擇菜單欄中的“插入”|“模塊”命令創(chuàng)建一個新模塊,雙擊該模塊打開其“代碼”窗口,在其中輸入程序代碼,如圖1所示。具體的程序代碼如下所示:
Sub CreateXMLList()
Dim xMap As XmlMap
Dim objList As ListObject
Dim arrPath As Variant
Dim mPath As XPath
Dim i As Integer
On Error Resume Next
arrPath=Array("學(xué)號","姓名","性別","出生年月",_
"身份證號","籍貫","電話","地址") '架構(gòu)元素名
Set xMap=ThisWorkbook.XmlMaps("學(xué)生信息架構(gòu)映射") '獲取架構(gòu)映射
If xMap Is Nothing Then '如果架構(gòu)映射不存在則創(chuàng)建
Set xMap=ThisWorkbook.XmlMaps.Add(ThisWorkbook.Path&_"\學(xué)生信息.xsd") '創(chuàng)建到學(xué)生信息的架構(gòu)映射
xMap.Name="學(xué)生信息架構(gòu)映射" '設(shè)置架構(gòu)映射的名稱
End If
Set objList=Sheet1.ListObjects.Add '在Sheet1表中添加列表
For i=1 To UBound(arrPath)
objList.ListColumns.Add '為列表添加列
Next
For i=0 To UBound(arrPath) '設(shè)置列表的各個列
objList.ListColumns(i+1).Name=arrPath(i) '設(shè)置列表第i+1列的列標(biāo)題
objList.ListColumns(i+1).XPath.SetValue xMap,_"/學(xué)生明細(xì)/學(xué)生信息/"&arrPath(i) '建立第i+1列的區(qū)域映射
Next
xMap.Import ThisWorkbook.Path&"\學(xué)生信息.xml" '導(dǎo)入XML數(shù)據(jù)文檔
End Sub
圖1 添加模塊并輸入程序代碼
2、切換到Excel,選擇A1單元格,返回Visual Basic編輯器中,將插入點(diǎn)光標(biāo)放置到上一步創(chuàng)建的程序中,按F5鍵運(yùn)行程序,在Excel工作表中可以查看到程序代碼運(yùn)行的結(jié)果,如圖2所示。
圖2 程序運(yùn)行的結(jié)果
提示
從上面的結(jié)果中可以看出,Excel文件中已經(jīng)加載了映射的名稱和元素,并且將這些元素都填充到Excel的列表中。
3、添加導(dǎo)入數(shù)據(jù)的代碼。在程序代碼的最后添加如下代碼:
xMap.Import ThisWorkbook.Path&“\學(xué)生信息.xml” '導(dǎo)入XML數(shù)據(jù)文檔
返回到VBA中,查看程序代碼運(yùn)行結(jié)果,如圖3所示。
圖3 運(yùn)行結(jié)果
注意
通過錄制宏并不能獲取導(dǎo)入XML文檔數(shù)據(jù)的全部代碼,其中指定映射區(qū)域的步驟將不會獲取任何宏代碼。因而讀者在使用該方法時,需要自己手動完成這些代碼的設(shè)置工作。
猜你喜歡: