如何用VBA读取XML文件

如何用VBA读取XML文件,第1张

Dim xml As String

xml = "<root><person><name>Me </name></person><person><name>No Name </name></person></root>"

Dim oXml As MSXML2.DOMDocument60

Set oXml = New MSXML2.DOMDocument60

oXml.loadXML xml

Dim oSeqNodes, oSeqNode As IXMLDOMNode

Set oSeqNodes = oXml.selectNodes("//root/person")

If oSeqNodes.length = 0 Then

'show some message

Else

For Each oSeqNode In oSeqNodes

Debug.Print oSeqNode.selectSingleNode("name").Text

Next

End If

在Excel中,通过使用VBA程序,可以方便地实现XML文件的添加。实际上,通过VBA代码向工作表导入XML文档数据需要完成3个步骤。以下是我为您带来的关于Excel中编写VBA程序加载XML文件的方法,希望对您有所帮助。

Excel中编写VBA程序加载XML文件的方法

1、新建Excel文件,打开Visual Basic编辑器。选择菜单栏中的“插入”|“模块”命令创建一个新模块,双击该模块打开其“代码”窗口,在其中输入程序代码,如图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("学号","姓名","性别","出生年月",_

"身份z号","籍贯","电话","地址") '架构元素名

Set xMap=ThisWorkbook.XmlMaps("学生信息架构映射") '获取架构映射

If xMap Is Nothing Then '如果架构映射不存在则创建

Set xMap=ThisWorkbook.XmlMaps.Add(ThisWorkbook.Path&_"\学生信息.xsd") '创建到学生信息的架构映射

xMap.Name="学生信息架构映射" '设置架构映射的名称

End If

Set objList=Sheet1.ListObjects.Add '在Sheet1表中添加列表

For i=1 To UBound(arrPath)

objList.ListColumns.Add '为列表添加列

Next

For i=0 To UBound(arrPath) '设置列表的各个列

objList.ListColumns(i+1).Name=arrPath(i) '设置列表第i+1列的列标题

objList.ListColumns(i+1).XPath.SetValue xMap,_"/学生明细/学生信息/"&arrPath(i) '建立第i+1列的区域映射

Next

xMap.Import ThisWorkbook.Path&"\学生信息.xml" '导入XML数据文档

End Sub

图1 添加模块并输入程序代码

2、切换到Excel,选择A1单元格,返回Visual Basic编辑器中,将插入点光标放置到上一步创建的程序中,按F5键运行程序,在Excel工作表中可以查看到程序代码运行的结果,如图2所示。

图2 程序运行的结果

提示

从上面的结果中可以看出,Excel文件中已经加载了映射的名称和元素,并且将这些元素都填充到Excel的列表中。

3、添加导入数据的代码。在程序代码的最后添加如下代码:

xMap.Import ThisWorkbook.Path&“\学生信息.xml” '导入XML数据文档

返回到VBA中,查看程序代码运行结果,如图3所示。

图3 运行结果

注意

通过录制宏并不能获取导入XML文档数据的全部代码,其中指定映射区域的步骤将不会获取任何宏代码。因而读者在使用该方法时,需要自己手动完成这些代码的设置工作。

猜你喜欢:

1. Excel2010怎么添加Vba编辑器

2. Excel怎么调用VBA

3. excel如何使用VBA窗口

4. Excel2010怎样添加Vba编辑器

5. 怎么在VBA指令中调用Excel函数

1.首先,我们正常使用Excel的另存为,看看能否顺利地直接另存为XML文件。

方法:

点击Excel左上角按钮,在d出的选项中,点击“另存为”

或者直接在Excel中按下快捷键F12

2.选择最后一项:其他格式。

3.接下来,重命名一下文件名,并选择文件类型为:

XML数据(*.xml)

4.点击“保存”按钮,会出现如下错误警告:

因为工作簿不包含任何XML映射,所以无法保存任何XML数据。

单击“帮助”以获取详细信息。

5.这个原因是我们的工作簿只是普通的Excel数据,的确没有做过XML映射,或者Excel数据也不是从XML文件导入的。

这时,我们尝试另存为另一种文件类型:

XML电子表格2003(*.xml)

6.点击保存按钮。

7.这时会d出一个兼容性对话框,问你是否保持工作簿的这种格式。

8.点击“是”,即可将Excel保存为XML格式的文档了。

我们使用软件打开这个XML文档(例如通过Chrome浏览器),发现格式正常,Excel数据也全在里面。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8100082.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存