65.9K
CodeProject 正在变化。 阅读更多。
Home

使用 Microsoft Excel 2003 将数据列表转换为 XML

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.63/5 (23投票s)

2006年5月23日

5分钟阅读

viewsIcon

192078

downloadIcon

2749

本教程介绍如何使用 Excel 中的 XML 映射将电子表格数据转换为 XML。

引言

Microsoft Excel 2003 以多种方式支持 XML。此 XML 功能的一个应用是能够将数据列表导出为 XML 格式。这在处理最初来自逗号分隔值文件(.csv 文件)或固定宽度数据文件的源数据时特别有用。两者都是纯文本文件格式,并且是数据库和电子表格应用程序常见的导入/导出选项。

通常,在将数据源转换为 XML 输出时会考虑 XSL 样式表。但是,XSL 样式表无法帮助我们将.csv或固定宽度数据转换为 XML,因为 XSL 需要基于 XML 的源。然而,.csv或固定宽度文件可以轻松导入 Excel,并且只需几个额外的步骤,就可以导出为所需的 XML 格式。

当为 Excel 列表分配XML 映射时,该列表就可以导出到 XML。XML 映射是 XML 架构或其他文件,显示所需 XML 输出的示例,在这种情况下,Excel 可以推断出架构。两者都与包含列表数据的电子表格相关联。然后,用户可以通过拖放操作将映射中的单个数据字段连接到列表源。最后,使用菜单命令导出数据。

分步操作

这项任务的起点很简单:Excel 已打开,并且您已经输入或导入了一个数据列表(例如,一个.csv文件)。请包含一个标题行,在每列的顶部标识字段名称。作为练习,您可以使用本文顶部链接可下载的Sample.xls文件。

  1. 我们将首先创建映射文件,它可以是 XML 架构,也可以是显示示例 XML 输出的文件。打开记事本或您喜欢的文本编辑器。
  2. 输入并保存映射文件。作为练习,您可以使用文章下载中附带的sectionsMap.xml文件。在本例中,我们创建了一个示例 XML 文档,它演示了我们希望实现的输出,而不是使用架构。Excel 将读取示例输出并推断出适合映射的架构。

    对于示例输出,创建一个根元素。嵌套在根元素内,创建一个与列表中单行数据关联的元素。列表行中的单个数据字段可以标识为该元素的属性,或者作为父元素的子元素。

    一旦代表完整列表行的元素完成,将其复制并粘贴为根元素内的第二个元素。重要的是,示例输出应包含多个元素,以便与多个列表行关联。下图显示了故意重复两次的<section>标签;这使得 Excel 可以推断出它将在整个数据列表中重复。

    如果在示例输出中未重复<section>标签,Excel 会将其关联视为单个数据单元格而不是一列单元格。在示例中重复<section>元素允许 Excel 推断出与多行中的列的关联。

  3. 在 Excel 中,将包含数据列表的工作表设为活动状态,然后选择菜单数据 -> XML -> XML 源。此时将打开 XML 源任务窗格。

  4. 在 XML 源任务窗格中,单击XML 映射…按钮。

  5. 在 XML 映射对话框中,单击添加...,然后选择您在步骤 #2 中创建的架构或 XML 示例输出文件。如果您使用的是 XML 示例而不是架构,例如来自文章下载的sectionsMap.xml文件,您将看到以下对话框,可以通过单击确定来关闭它。

  6. 在 XML 映射对话框中,将添加映射文件。单击确定关闭对话框。
  7. XML 源任务窗格现在将显示映射元素和属性。

    现在是时候验证 Excel 对示例输出的解释了。XML 映射中的每个图标都描述了给定元素或属性的解释。

    (来源:Excel 帮助)

    上图显示,我们示例输出文件中的<section>元素被解释为“重复父元素”。此解释中的“重复”方面对于与重复的列表行相关联是必需的。该元素的“子元素”是给定行中的单个数据字段。

  8. 现在,是将单个子元素或映射中的属性与源中的列表列关联起来的时候了。通过单击并将字段从映射拖动到它应该与之关联的列表列标题来完成此操作。当拖放到列标题上时,列表列将高亮显示,并自动转换为 Excel List 对象。

  9. 对每个附加字段重复拖放操作,通过将其放置在列标题上来将映射中的每个字段与相应的列表数据列相关联。

  10. 在进行了 XML 关联之后,就可以导出数据了。选择菜单数据 -> XML -> 导出…并指定创建新 XML 文件的位置/文件名。
  11. 在记事本或其他文本编辑器中打开新创建的文件,以验证导出是否按预期工作。

摘要

Excel 中的数据列表(例如,可以从.csv或固定宽度数据文件中获得的数据)可以导出为 XML 格式,前提是已将 XML 映射分配给电子表格。XML 映射可以是描述源数据的 XML 架构,也可以是显示所需输出格式示例的 XML 文档。在示例输出文件中,定义了一个父元素来与给定的列表行相关联。父元素在示例输出中至少重复一次,这使得 Excel 可以推断出它与列表中的重复行的关联。然后,可以通过拖放操作将单个子属性和元素与相应的列表列关联起来,将 XML 子元素连接到其相关的列表字段标题。在 XML 映射就位并将字段项与数据列关联后,就可以使用菜单命令数据 -> XML -> 导出导出数据。转换为 XML 后,列表数据就可以用作 XSL 转换或任何其他 XML 应用程序的源了。

© . All rights reserved.