在此练习中,您将创建一个 XML 示例数据文件。然后通过使用两种方法之一创建一个 XML 映射架构。接着使用该架构创建一个映射到该 XML 示例数据的表。若要完成此任务,您必须执行以下操作:
在此任务中,将在文本编辑器中创建一个 XML 数据文件,供本练习后面使用。
启动文本编辑器,如记事本。
在编辑器中粘贴或键入下面的 XML。
<?xml version='1.0'?><BookInfo> <Book> <ISBN>989-0-487-04641-2</ISBN> <Title>My World</Title> <Author>Nancy Davolio</Author> <Quantity>121</Quantity> </Book> <Book> <ISBN>981-0-776-05541-0</ISBN> <Title>Get Connected</Title> <Author>Janet Leverling</Author> <Quantity>435</Quantity> </Book> <Book> <ISBN>999-1-543-02345-2</ISBN> <Title>Honesty</Title> <Author>Robert Fuller</Author> <Quantity>315</Quantity> </Book></BookInfo>
将文档另存为 C:\BookData.xml。
关闭文本编辑器。
在此任务中,将使用 Microsoft Visual Basic for Applications (VBA) 创建一个自定义 XML 映射架构。您可以通过以下两种方法之一创建架构:使用代码明确编写模板 XML,或者将 XML 文件读取到一个字符串,然后从该字符串创建架构。
在 Excel 2010 中创建一个空白工作簿。
按 Alt+F11 打开 Visual Basic 编辑器。
通过单击"插入"和"模块",插入一个常规模块。
在此模块中,粘贴或键入以下代码。
Sub Create_XSD() Dim StrMyXml As String, MyMap As XmlMap Dim StrMySchema As String StrMyXml = "< BookInfo >" StrMyXml = StrMyXml & "<Book>" StrMyXml = StrMyXml & "<ISBN>Text</ISBN>" StrMyXml = StrMyXml & "<Title>Text</Title>" StrMyXml = StrMyXml & "<Author>Text</Author>" StrMyXml = StrMyXml & "<Quantity>999</Quantity>" StrMyXml = StrMyXml & "</Book>" StrMyXml = StrMyXml & "<Book></Book>" StrMyXml = StrMyXml & "</ BookInfo >" ' Turn off async loading. Application.DisplayAlerts = False ' Add the string to the XmlMaps collection. Set MyMap = ThisWorkbook.XmlMaps.add(StrMyXml) Application.DisplayAlerts = True ' Create an empty file and output the schema. StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML Open "C:\MySchema.xsd" For Output As #1 Print #1, StrMySchema Close #1End Sub
关闭 Visual Basic 编辑器。
接下来,运行代码。在"开发工具"选项卡上,单击"宏",突出显示"Create_XSD",然后单击"运行"。在 C:\MySchema.xsd 处检查架构文件。您很快将向 Excel 中加载此文件来创建 XML 映射。
在 Excel 2010 空白工作簿中,按 Alt+F11 打开 Visual Basic 编辑器。
通过单击"插入"和"模块",插入一个常规模块。
在此模块中,粘贴或键入以下代码。
Sub Create_XSD2() Dim StrMyXml As String, MyMap As XmlMap Dim StrMySchema As String ' Book.xml is the file created in section one of this topic. StrMyXml = "C:\BookData.xml" ' Turn off async loading. Application.DisplayAlerts = False ' Add the string to the XmlMaps collection. Set MyMap = ThisWorkbook.XmlMaps.Add(StrMyXml) Application.DisplayAlerts = True ' Create an empty file and output the schema. StrMySchema = ThisWorkbook.XmlMaps(1).Schemas(1).XML Open "C:\BookData2.xsd" For Output As #1 Print #1, StrMySchema Close #1End Sub
关闭 Visual Basic 编辑器。
接下来,运行代码。在"开发工具"选项卡上,单击"宏",突出显示"Create_XSD",然后单击"运行"。在 C:\MySchema.xsd 处检查架构文件。您很快将向 Excel 2010 中加载此文件来创建 XML 映射。
在此任务中,将在前面部分创建的架构导入到 Excel 来创建 XML 映射,然后导入 XML 数据文件。
在"开发工具"选项卡上的"XML"组中,单击"源"以打开"XML 源"任务窗格。
在任务窗格上,单击"Xml 映射"。
在"Xml 映射"对话框中,单击"添加",导航到"BookInfo.xsd"文件,单击"打开",然后单击"确定"。
在"XML 源"任务窗格中,将 BookInfo 节点拖动到单元格 A1。此操作将在工作表中创建一个表,如图 1 所示。您可以根据需要设置此表的格式。
接下来,导入 XML 数据文件。在"开发工具"选项卡上,单击"导入"。
在"导入 XML"对话框中,导航到 XML 数据文件,然后单击"导入"。数据将映射到格式化表,如图 2 所示。
联系客服