分享

在 Excel 2010 中创建 XML 映射架构

 qrzhcd 2017-10-12
发布时间:2010 年 11 月

在此练习中,您将创建一个 XML 示例数据文件。然后通过使用两种方法之一创建一个 XML 映射架构。接着使用该架构创建一个映射到该 XML 示例数据的表。若要完成此任务,您必须执行以下操作:

在此任务中,将在文本编辑器中创建一个 XML 数据文件,供本练习后面使用。

创建 XML 数据文件

  1. 启动文本编辑器,如记事本。

  2. 在编辑器中粘贴或键入下面的 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>
    
  3. 将文档另存为 C:\BookData.xml

  4. 关闭文本编辑器。

在此任务中,将使用 Microsoft Visual Basic for Applications (VBA) 创建一个自定义 XML 映射架构。您可以通过以下两种方法之一创建架构:使用代码明确编写模板 XML,或者将 XML 文件读取到一个字符串,然后从该字符串创建架构。

通过使用代码明确编写 XMLExcel 中创建 XSD

  1. Excel 2010 中创建一个空白工作簿。

  2. 按 Alt+F11 打开 Visual Basic 编辑器。

  3. 通过单击"插入"和"模块",插入一个常规模块。

  4. 在此模块中,粘贴或键入以下代码。

    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 #1
    End Sub
    
  5. 关闭 Visual Basic 编辑器。

  6. 接下来,运行代码。在"开发工具"选项卡上,单击"宏",突出显示"Create_XSD",然后单击"运行"。在 C:\MySchema.xsd 处检查架构文件。您很快将向 Excel 中加载此文件来创建 XML 映射。

通过将 XML 数据读取到字符串在 Excel 中创建架构

  1. Excel 2010 空白工作簿中,按 Alt+F11 打开 Visual Basic 编辑器。

  2. 通过单击"插入"和"模块",插入一个常规模块。

  3. 在此模块中,粘贴或键入以下代码。

    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 #1
    End Sub
    
  4. 关闭 Visual Basic 编辑器。

  5. 接下来,运行代码。在"开发工具"选项卡上,单击"宏",突出显示"Create_XSD",然后单击"运行"。在 C:\MySchema.xsd 处检查架构文件。您很快将向 Excel 2010 中加载此文件来创建 XML 映射。

在此任务中,将在前面部分创建的架构导入到 Excel 来创建 XML 映射,然后导入 XML 数据文件

创建 Xml 映射然后将 XML 数据文件导入到 Excel

  1. 在"开发工具"选项卡上的"XML"组中,单击"源"以打开"XML 源"任务窗格。

  2. 在任务窗格上,单击"Xml 映射"。

  3. 在"Xml 映射"对话框中,单击"添加",导航到"BookInfo.xsd"文件,单击"打开",然后单击"确定"。

  4. 在"XML 源"任务窗格中,将 BookInfo 节点拖动到单元格 A1。此操作将在工作表中创建一个表,如图 1 所示。您可以根据需要设置此表的格式。

    图 1. 从 Xml 映射创建的表

    从 Xml 映射创建的表
  5. 接下来,导入 XML 数据文件。在"开发工具"选项卡上,单击"导入"。

  6. 在"导入 XML"对话框中,导航到 XML 数据文件,然后单击"导入"。数据将映射到格式化表,如图 2 所示。

    图 2. 将 XML 数据导入到表

    XML 数据导入到表中

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多