使用 Microsoft Excel,可以更容易地执行以下操作:导入从其他数据库和应用程序中创建的可扩展标记语言 (XML) 数据,将 XML 元素从 XML 架构映射到工作表单元格中,以及导出修订的 XML 数据以便与其他数据库和应用程序进行交互。 这些 XML 功能让 Office Excel 转换成了带有熟悉的用户界面的 XML 数据文件生成器。
本文内容
为何在 Excel 中使用 XML?
XML 是一项用于管理和共享人读文本文件中的结构化数据的技术。 XML 遵循业界标准原则,并且可由各种数据库和应用程序进行处理。 通过使用 XML,应用程序设计人员可以创建他们自己的自定义标记、数据结构和架构。 简言之,XML 使在数据库、应用程序和组织之间定义、传输、验证和解释数据变得格外轻松。
XML 数据和架构文件
Excel 主要处理两种类型的 XML 文件:
-
XML 数据文件 (.xml),此类型文件包含自定义标记和结构化数据。
-
架构文件 (.xsd),此类型文件包含强制实施规则(例如数据类型和验证)的架构标记。
XML 标准还定义了可扩展样式表语言转换 (XSLT) (.xslt) 文件,这种文件用于应用样式以及将 XML 数据转换为不同的显示格式。 在将 XML 文件导入到 Excel 之前以及在从 Excel 中导出 XML 文件之后,可以先应用这些转换。 如果 XSLT 文件链接到导入到 Excel 中的 XML 数据文件,则在将数据添加到工作表之前,只有在使用 Excel 中的“打开”命令打开 XML 文件时,您才可以选择应用或不应用格式设置。 在单击“打开”按钮以查看文件夹中的 XML 文件之前,请选择“XML 文件(*.xml)”文件类型。
重要的 XML 和 Excel 应用场合
通过使用 XML 和 Excel,可以采用以前不可能或非常难以实现的方式来管理工作簿和数据。 通过使用 XML 映射,可以轻松地从 Excel 文档中添加、确定和提取特定业务数据。 例如,包含客户姓名和地址的发票或包含上一季度财务结果的报告不再只是静态报告。 可以轻松地从数据库和应用程序中导入此信息,对其进行修改,并将其导出到相同的或其他的数据库和应用程序。
下面是 XML 功能得以实现的重要场合:
-
通过将 XML 元素映射到现有单元格来扩展现有 Excel 模板的功能。 这使得可以更轻松地将 XML 数据放入模板及从模板中取出,而无需重新设计它们。
-
通过将 XML 元素映射到现有工作表上将 XML 数据用作现有计算模型的输入。
-
将 XML 数据文件导入到新的工作簿中。
-
将 XML 数据从 Web 服务中导入到 Excel 工作表中。
-
将映射的单元格中的数据导出到独立于工作簿中其他数据的 XML 数据文件中。
在 Excel 中使用 XML 数据的基本过程
下图显示了当您在 Excel 中使用 XML 时不同的文件和操作是如何协同工作的。 实质上,该过程有五个阶段。
向工作簿中添加 XML 架构文件 (.xsd)
将 XML 架构元素映射到个别单元格或 XML 表
导入 XML 数据文件 (.xml) 并将 XML 元素绑定到映射的单元格
在保留 XML 结构和定义的同时输入数据、移动映射的单元格并利用 Excel 功能
将经过修改的数据从映射的单元格导出到 XML 数据文件
处理 XML 映射
可以在 Excel 中创建或打开工作簿,将 XML 架构文件 (.xsd) 附加到该工作簿,然后使用“XML 源”任务窗格将架构的 XML 元素映射到个别单元格或表。 将 XML 元素映射到工作表后,可以将 XML 数据导入到映射单元格中或从映射单元格中导出 XML 数据。
将 XML 架构文件 (.xsd) 添加到工作簿时,将创建一个 XML 映射。 通常,XML 映射用于创建映射单元格和管理 XML 架构中映射单元格和个别元素之间的关系。 此外,在导入或导出 XML 数据文件 (.xml) 时,这些 XML 映射用于在架构中将映射单元格的内容绑定到元素。
可以创建两种类型的映射单元格:唯一映射单元格和重复单元格(显示为 XML 表)。 为了使设计工作表更加灵活,可以将映射单元格拖到工作表上的任何位置并放置成任何顺序(甚至是与 XML 架构不同的顺序)。 还可以选择要映射或不映射哪些元素。
需要了解下列有关使用 XML 映射的规则:
-
工作簿可以包含一个或多个 XML 映射。
-
一次只可以将一个元素映射到工作簿中的一个位置。
-
每个 XML 映射都是独立的实体,即使同一工作簿中的多个 XML 映射指向同一架构也是如此。
-
一个 XML 映射只能包含一个根元素。 如果添加一个定义多个根元素的架构,则会提示您选择要用于新 XML 映射的根元素。
使用“XML 源”任务窗格
使用“XML 源”任务窗格管理 XML 映射。 若要打开此窗格,请在“开发工具”选项卡上的“XML”组中,单击“源”。 下表显示了此任务窗格的主要功能。
1. 列出已添加到工作簿中的 XML 映射
2. 显示当前所列 XML 映射中的 XML 元素的层次列表
3. 在使用“XML 源”任务窗格和 XML 数据时设置选项,例如,设置如何预览数据和控制标题
4. 打开“XML 映射”对话框,此对话框可用于添加、删除或重命名 XML 映射
5. 验证是否可以通过当前的 XML 映射导出 XML 数据
元素类型及其图标
下表概述了 Excel 可以处理的每种 XML 元素类型以及用于表示每种元素类型的图标。
元素类型 |
图标 |
---|---|
父元素 |
|
必需的父元素 |
|
重复的父元素 |
|
必需的重复父元素 |
|
子元素 |
|
必需的子元素 |
|
重复的子元素 |
|
必需的重复子元素 |
|
属性 |
|
必需属性 |
|
复杂结构中的简单内容 |
|
复杂结构中必需的简单内容 |
|
处理唯一映射单元格
唯一映射单元格是已映射到非重复的 XML 元素的单元格。 通过从“XML 源”任务窗格中将非重复的 XML 元素拖到工作表中的单个单元格中,可以创建唯一映射单元格。
在将非重复的 XML 元素拖到工作表上时,可以使用智能标记选择将 XML 元素名称作为标题放在唯一映射单元格的上方或左边,或者可以将现有单元格的值用作标题。
如果唯一映射单元格映射到 XML 架构定义 (XSD) 数据类型(Excel 将此数据类型解释为数字、日期或时间)的 XML 元素,则还可以在此单元格中使用公式。
处理 XML 表中的重复单元格
XML 表与 Excel 表在外观和功能方面相似。 XML 表是已映射到一个或多个重复的 XML 元素的 Excel 表。 XML 表中的每一列都表示一个 XML 元素。
执行以下操作时将创建 XML 表:
-
使用“导入”命令(在“开发工具”选项卡上的“XML”组中)导入 XML 数据文件。
-
使用 Excel 中的“打开”命令打开 XML 数据文件,然后在“打开 XML”对话框中选择“作为 XML 表”。
-
使用“来自 XML 数据导入”命令(通过“数据”选项卡上“获取外部数据”组中的“自其他来源”命令按钮)导入 XML 数据文件,然后在“导入数据”对话框中选择“现有工作表中的 XML 表”或“新建工作表”。
-
从“XML 源”任务窗格中将一个或多个重复的元素拖到工作表。
在创建 XML 表时,XML 元素名称将被自动用作列标题。 可以将这些列标题更改为任意所需的列标题。 但是,在从映射单元格中导出数据时始终使用原始的 XML 元素名称。
在处理 XML 表时,“XML 源”任务窗格中“选项”按钮下有两个选项很有用:
-
映射时自动合并元素 如果选中此选项,则在将多个字段放在工作表上时,Excel 将利用这些字段创建一个 XML 表。 只要将多个字段一个挨一个地放在同一行上,此选项便可生效。 如果清除此选项,则每个元素将显示为其自己的 XML 表
-
我的数据带有标题 如果选中此选项,现有标题数据将用作映射到工作表的重复元素的列标题。 如果清除此选项,XML 元素名称将用作列标题。
通过使用 XML 表,可以基于 XML 数据源轻松地导入、导出、排序、筛选和打印数据。 但是,就如何在工作表上排列 XML 表而言,XML 表确实具有一些限制。
-
XML 表建立在行的基础上,这表示它们是从表头自上而下延伸的。 您无法在现有行上方添加新条目。
-
您无法转置 XML 表以便将新条目添加到右边。
可以在映射到 XML 架构定义 (XSD) 数据类型(Excel 将此数据类型解释为数字、日期或时间)的 XML 元素的列中使用公式。 就像在 Excel 表中一样,向表中添加新行时,将在列中向下填充 XML 表中的公式。
XML 映射安全性注意事项
XML 映射及其数据源信息与 Excel 工作簿(不是特定工作表)一起保存。 恶意用户可以通过使用 Microsoft Visual Basic for Applications (VBA) 宏来查看此映射信息。 此外,如果将工作簿另存为启用了宏的 Excel Office Open XML 格式文件,则可以通过 Microsoft 记事本或通过其他文本编辑程序来查看此映射信息。
如果要继续使用映射信息,但要删除可能敏感的数据源信息,则可以从工作簿中删除 XML 架构的数据源定义,但是仍要导出 XML 数据,操作方法是清除“XML 映射属性”对话框(可通过“开发工具”选项卡上的“XML”组中的“映射属性”命令调出此对话框)中的“在工作簿中保存数据源定义”复选框。
如果在删除映射之前删除工作表,则有关数据源的映射信息及可能有其他敏感信息仍将保存在工作簿中。 如果要更新工作簿以删除敏感信息,请确保在删除工作表之前删除 XML 映射,以便从工作簿中永久删除映射信息。
处理推断的架构
在未事先添加对应的 XML 架构来创建 XML 映射的情况下,如果导入 XML 数据,则 Excel 将尝试根据在 XML 数据文件中定义的标记推断一个架构。 此推断的架构与工作簿存储在一起,并且通过使用此推断的架构,可以处理 XML 数据(如果 XML 架构文件与工作簿不相关)。
在处理导入的 XML 数据(具有推断的架构)时,还可以自定义“XML 源”任务窗格。 从“选项”按钮中选中“在任务窗格中预览数据”选项,以在元素列表中将第一行数据显示为示例数据(如果导入的 XML 数据与 Excel 当前会话中的 XML 映射相关联)。
无法将 Excel 推断的架构导出为独立的 XML 架构数据文件 (.xsd)。 虽然有用于创建 XML 架构文件的 XML 架构编辑器和其他方法,但是您可能无法方便地利用它们或不了解如何使用它们。
导出 XML 数据
通过导出工作表上映射单元格的内容,可以导出 XML 数据。 在导出数据时,Excel 会应用下列规则来确定保存的数据和保存数据的方式:
-
如果可选元素存在空白单元格,则不会创建空项目,但是如果必需元素存在空白单元格,则会创建空项目。
-
使用 Unicode Transformation Format-8 (UTF-8) 编码编写数据。
-
所有命名空间均在 XML 根元素中定义。
-
Excel 将覆盖现有命名空间的前缀。 为默认的命名空间分配前缀 ns0。 为连续的命名空间分配前缀 ns1、ns2 一直到 ns<count>,其中 <count> 是写入到 XML 文件的命名空间数。
-
不保留注释节点。
可以显示“XML 映射属性”对话框(在“开发人员”选项卡的“XML”组中单击“映射属性”), 然后使用“根据架构验证数据进行导入和导出”选项(默认已激活),以指定在导出数据时 Excel 是否根据 XML 映射验证数。 如果要确保导出的 XML 数据与 XML 架构一致,请单击此选项。
使用启用了宏的 Excel Office Open XML 格式文件
可以将 Excel 工作簿保存为各种文件格式,包括启用了宏的 Excel Office Open XML 格式文件 (.xlsm)。 Excel 具有定义的 XML 架构,该 XML 架构定义 Excel 工作簿的内容,包括用于存储所有工作簿信息(例如数据和属性)以及定义工作簿整体结构的 XML 标记。 自定义应用程序可以使用这种启用了宏的 Excel Office XML 格式文件。 例如,开发人员可能想要创建自定义应用程序来搜索以此格式保存的多个工作簿中的数据,并根据找到的数据创建报告系统。
需要更多帮助吗?
可随时在 Excel 技术社区中咨询专家或在社区中获取支持。