如果以前 创建了 XML 映射,则可以使用它将 XML 数据导入到已映射的单元格中,但是还有几种方法和命令可用于在没有 XML 映射的情况下导入 XML 数据。
如果有 XML 映射,请执行以下操作以将 XML 数据导入映射的单元格:
- 在 XML 映射中,选择映射的单元格之一。
- 单击 “开发人员>导入”。
如果看不到“开发工具”选项卡上,请参阅显示“开发工具”选项卡。 - 在“ 导入 XML ”对话框中,找到并选择要导入 (.xml) XML 数据文件,然后单击 “导入”。
导入 XML 数据的其他方法
有关问题的详细信息,请参阅本文末尾的 导入 XML 数据的常见问题 。
将 XML 数据文件导入为 XML 表
单击 “开发人员>导入”。
如果看不到“开发工具”选项卡上,请参阅显示“开发工具”选项卡。在“ 导入 XML ”对话框中,找到并选择要导入 (.xml) XML 数据文件,然后单击 “导入”。
如果 XML 数据文件未引用架构,则 Excel 将根据 XML 数据文件推断出架构。在“ 导入数据 ”对话框中,执行下列操作之一:
- 选择 现有工作表中的 XML 表格 ,将 XML 数据文件的内容导入到工作表中指定单元格位置的 XML 表格中。
- 选择 “新工作表中的 XML 表格 ”,将文件的内容导入到新工作表的 XML 表格中,从单元格 A1 开始。 XML 数据文件的架构显示在“ XML 源 ”任务窗格中。
如果 XML 数据文件未引用架构,则 Excel 将从 XML 数据文件推导出架构。
若要控制 XML 数据 (的行为(如数据绑定、格式和布局) ),请单击“ 属性”,这将显示“ XML 映射属性” 对话框。 例如,默认导入数据时,映射区域中的现有数据将被覆盖,但可以更改此设置。
导入多个 XML 数据文件
选择映射单元格以将多个 XML 文件导入到一组映射单元格中。
如果要将多个 XML 文件导入到多组已映射的单元格中,请单击工作表上未映射的任意位置的单元格。单击 “开发人员>导入”。
如果看不到“开发工具”选项卡上,请参阅显示“开发工具”选项卡。在“ 导入 XML ”对话框中,找到并选择要导入 (.xml) XML 数据文件。
- 如果文件是连续的,请按 Shift 并单击列表中的第一个和最后一个文件。 XML 文件中的所有数据都将导入并追加到映射的单元格。
- 如果文件不连续,请按住 Ctrl 并单击列表中要导入的每个文件。
单击“导入”。
如果选择不连续的文件,则将显示“ 导入 <文件名>.xml ”对话框。 选择与要为每个文件导入的 XML 数据文件相对应的 XML 映射。
若要对尚未导入的所有选定文件使用单个映射,请选择“ 对此架构的所有选定文件使用此 XML 映射”。
将多个 XML 数据文件作为外部数据导入
若要导入使用相同命名空间但不同 XML 架构的多个 XML 文件,可以使用“ 从 XML 数据导入” 命令。 Excel 为导入的每个 XML 数据文件创建唯一的 XML 映射。
注意
如果要导入多个未定义命名空间的 XML 文件,则将将把这些 XML 文件视为使用相同的命名空间。
如果使用具有 Microsoft 365 订阅的 Excel,请单击“数据>:从 XML 从文件>获取数据>”。
如果使用的是 Excel 2016 或更早版本,请单击“XML 数据导入来自其他源>的数据>”。转到具有要导入的 XML 数据文件 (.xml) 的驱动器、文件夹或 Internet 位置。
选择文件,然后单击“打开”。
在“ 导入数据 ”对话框中,执行下列操作之一:
- 现有工作表中的 XML 表格 文件的内容将导入到新工作表中的新 XML 表格中。 如果 XML 数据文件未引用架构,则 Excel 将根据 XML 数据文件推断出架构。
- 现有工作表 XML 数据导入到一个二维表中,该表包含行和列,其中 XML 标记显示为列标题,数据显示在列标题下方的行中。 根节点) (第一个元素就像标题一样使用,显示在指定的单元格位置中。 其余标记按字母顺序在第二行排序。 在这种情况下,Excel 不会推断出架构,因此无法使用 XML 映射。
- 新建工作表 Excel 会向工作簿添加一个新工作表,并自动将 XML 数据放在新工作表的左上角。 如果 XML 数据文件未引用架构,则 Excel 将根据 XML 数据文件推断出架构。
若要控制 XML 数据的行为(如数据绑定、格式和布局),请单击“ 属性”,这将显示“ XML 映射属性 ”对话框。 例如,导入数据时,映射区域中的现有数据默认会被覆盖,但可以更改此设置。
打开 XML 数据文件以导入其数据
单击 “文件>打开”。
在“ 打开 ”对话框中,单击包含要打开的文件的驱动器、文件夹或 Internet 位置。
选择文件,然后单击“打开”。
如果出现“ 导入 XML” 对话框,则打开的文件引用一个或多个可扩展样式表语言转换 (XSLT) 样式表,因此可单击以下选项之一:
打开文件而不应用样式表 XML 数据导入到一个二维表中,该表包含行和列,其中 XML 标记显示为列标题,数据显示在列标题下方的行中。 根节点) (第一个元素就像标题一样使用,显示在指定的单元格位置中。 其余标记按字母顺序在第二行排序。 在这种情况下,Excel 不会推断出架构,因此无法使用 XML 映射。
打开应用了以下样式表的文件 (选择一个) 选择要应用的样式表,然后单击“ 确定”。 XML 数据的格式会根据所选的样式表进行设置。
注意
XML 数据在 Excel 中以只读方式打开,这样就不会意外地将原始源文件保存为 Excel Macro-Enabled 工作簿文件格式 (.xlsm) 。 在这种情况下,Excel 不会推断出架构,因此无法使用 XML 映射。
如果出现“ 打开 XML ”对话框,则表明该 XML 文件不具有任何 XSLT 样式表引用。 要打开该文件,请单击以下选项之一:
- 单击 为 XML 表格 ,在新工作簿中创建 XML 表格。
文件的内容将导入到 XML 表中。 如果 XML 数据文件未引用架构,则 Excel 将根据 XML 数据文件推断出架构。 - 单击 为只读工作簿。
XML 数据导入到一个二维表中,该表包含行和列,其中 XML 标记显示为列标题,数据显示在列标题下方的行中。 根节点) (第一个元素就像标题一样使用,显示在指定的单元格位置中。 其余标记按字母顺序在第二行排序。 在这种情况下,Excel 不会推断出架构,因此无法使用 XML 映射。
XML 数据在 Excel 中以只读方式打开,这样就不会意外地将原始源文件保存为 Excel Macro-Enabled 工作簿文件格式 (.xlsm) 。 在这种情况下,Excel 不会推断出架构,因此无法使用 XML 映射。 - 单击“ 使用 XML 源”任务窗格。
XML 数据文件的架构显示在“ XML 源 ”任务窗格中。 然后,您可以将架构的元素拖动到工作表上,以将这些元素映射到工作表。
如果 XML 数据文件未引用架构,则 Excel 将根据 XML 数据文件推断出架构。
- 单击 为 XML 表格 ,在新工作簿中创建 XML 表格。
导入 XML 数据的常见问题
当 Excel 无法根据 XML 映射验证数据时,它会显示“ XML 导入错误 ”对话框。 在此对话框中,单击“ 详细信息” 以获取有关每个错误的其他信息。 下表列出了一些常见的导入错误:
| 错误 | 发生的变化 |
|---|---|
| 架构验证失败 | 单击“XML 映射属性”对话框中的“根据架构验证数据以进行导入和导出”时,已导入数据,但未根据指定的 XML 映射验证数据。 |
| 某些数据已作为文本导入 | 导入的部分或全部数据已从其声明的数据类型转换为文本。 若要在计算中使用此数据,需要将数据从文本转换为数字或日期。 例如,转换为文本的日期值在将它转换为日期数据类型之前,在 YEAR 函数中无法按预期工作。 Excel 在以下情况下将数据转换为文本:
|
| XML 解析错误 | XML 分析程序无法打开指定的 XML 文件。 确保 XML 文件没有语法错误,并且 XML 格式正确。 |
| 找不到与数据对应的 XML 映射 | 当您选择多个 XML 数据文件导入,而 Excel 无法为其中一个文件找到匹配的 XML 映射时,可能会出现此问题。 对于对话框标题栏中命名的文件,请先导入相应架构,然后再次尝试导入该文件。 |
| 无法调整 XML 表的大小以容纳数据 | 你正尝试通过将数据导入或附加到 XML 表来添加行,但表没有扩展空间。 XML 表只能从下向下展开。 例如,紧接在 XML 表下方可能会有一个对象(例如图片或其他表格),而这阻止了 XML 表格展开。 或者,为了使 XML 表格展开,它将超过 Excel 行限制 1,048,576。 若要解决此问题,请重新排列工作表上的表和对象,以允许 XML 表从下到下展开。 |
指定的 XML 文件不引用架构
你尝试打开的 XML 文件不引用 XML 架构。 为了处理文件中的 XML 数据,Excel 需要一个基于 XML 文件内容的架构。 如果该架构不正确或不充分,请将其从工作簿中删除。 然后,创建 XML 架构文件并编辑 XML 数据文件,以便 XML 数据文件引用架构。 有关详细信息,请参阅将 XML 元素映射到 XML 映射中的单元格。
注意
不能将 Excel 推断的架构导出为单独的 XML 架构数据文件 (.xsd) 。 虽然有用于创建 XML 架构文件的 XML 架构编辑器和其他方法,但是您可能无法方便地利用它们或不了解如何使用它们。
按照以下步骤从工作簿中删除 Excel 创建的架构:
- 单击 “开发人员>源”。
如果看不到“开发工具”选项卡上,请参阅显示“开发工具”选项卡。 - 在“XML 源”任务窗格中,单击“XML 映射”。
- 在 “XML 映射” 对话框中,单击 Excel 创建的 XML 映射,然后单击 “删除”。
导入使用相同命名空间但不同架构的多个 XML 文件无法按预期工作
使用多个 XML 数据文件和 XML 架构时,通常会为每个架构创建一个 XML 映射,映射所需元素,然后将每个 XML 数据文件导入相应的 XML 映射。 使用 “导入 ”命令打开具有相同命名空间的多个 XML 文件时,只能使用一个 XML 架构。 使用此命令打开使用相同命名空间但架构不同的多个 XML 文件时,可能会得到意外的结果。 例如,数据可能会被覆盖或文件无法打开。
若要导入使用相同命名空间但不同 XML 架构的多个 XML 文件,请尝试使用“从 XML 数据导入”命令 (单击“来自其他源的数据>) ”。 此命令允许具有相同命名空间的多个 XML 文件使用多个 XML 架构。 Excel 为要导入的每个 XML 数据文件创建唯一的 XML 映射。
注意
如果要导入多个未定义命名空间的 XML 文件,则将将把这些 XML 文件视为使用相同的命名空间。
显示“开发工具”选项卡
如果看不到“开发工具”选项卡,请通过执行下列操作来显示该选项卡:
- 单击 “文件>选项”。
- 单击“自定义功能区”类别。
- 在“主选项卡”下,勾选“开发工具”框,然后单击“确定”。