如何将 Excel 转换为 XML:免费工具 + Python 自动化实现

在跨系统数据对接、接口传输、网站及业务平台数据交互场景中,Excel 转 XML 是一项高频实用技能。XML 作为通用的机器可读结构化格式,广泛适配各类接口、内容管理系统与开发语言;而 Excel 则是大众最常用的数据整理工具。二者结合,能让表格数据在不同平台、软件间高效流转。
本文针对办公人员、数据分析员、开发工程师三类人群,整理了三套简单快速的转换方案,从简易手动操作、在线快速转换,到代码自动化处理全覆盖,可根据自身使用场景自由选择。

为什么要将 Excel 转换为 XML?

将 Excel 表格转换为 XML 格式的核心价值在于:

  • 跨平台兼容性:可对接各类 API 接口、商城 / 建站系统、企业管理软件(SAP、Salesforce 等)以及 Python、Java 等开发语言。​
  • 结构化数据:XML 会将 Excel 中的行列数据会转为标准化标签元素(例如 <product><name>笔记本电脑</name><price>999</price></product>),程序可直接解析调用。​
  • 数据完整性:XML 能避免 Excel 文件在跨系统共享时出现的格式问题(如公式失效、合并单元格异常等)。​
  • 适用场景:电商商品数据推送、接口数据导出、网站内容批量导入、企业内部数据集成等。

转换前置:规范 Excel 数据源(必做)​

结构清晰的源数据表是转换顺利的前提,而不规范的格式会导致转换报错,正式转换前请按以下要求整理表格:

  • 列标题使用简短唯一名称,禁止空格、特殊符号;
  • 删除空行、空列,避免 XML 校验失败;
  • 统一数据类型(价格统一为数字、日期统一格式);
  • 取消合并单元格,移除复杂公式,仅保留原始数据。

方法一:使用 Excel 原生功能手动进行转换​

Excel 的内置 “开发工具” 选项卡提供了 XML 任务的原生支持,无需额外安装软件。

适用人群:无编程基础的办公人员、处理机密数据、单次少量文件转换

操作步骤:

步骤1:准备 Excel 表格数据

将数据整理为清晰的表格格式,第一行需包含列标题(后续会作为XML标签)。本文以一个简单的商品列表为例:

展示商品数据的示例Excel电子表格。

步骤2:创建XML架构

XML 架构(.xsd 文件)用于定义最终 XML 的标签结构、数据类型与层级关系。

新建文本文档,粘贴以下代码,根据你的 Excel 列名修改标签名称与数据类型,最后将文件后缀改为 .xsd(示例命名:products.xsd)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Product">
<xs:complexType>
<xs:sequence>
<xs:element name="Products" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="商品ID" type="xs:positiveInteger"/>
<xs:element name="商品名称" type="xs:string"/>
<xs:element name="类别" type="xs:string"/>
<xs:element name="单价" type="xs:decimal"/>
<xs:element name="库存数量" type="xs:nonNegativeInteger"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

补充说明:标签名称区分大小写;数字选用 xs:integer、文本选用 xs:string、小数金额选用 xs:decimal

步骤3:将架构添加到 Excel

  1. 打开 Excel 文件。
  2. 切换到 “开发工具” 选项卡(若未显示该选项卡,依次点击 “文件” > “选项” > “自定义功能区”,勾选 “开发工具”,点击 “确定”。);
  3. 在 “开发工具” 选项卡中,点击 “” 打开 “XML 源” 窗格;
  4. 点击 “XML映射…”,再点击 “添加…”, 选中刚才创建的 .xsd 架构文件并加载

Excel“开发工具”选项卡界面,显示“XML源”窗格和“XML映射”对话框。

步骤4:将 XML 元素映射到单元格

  1. 在 “XML 源” 面板中,能看到架构文件定义的所有标签;
  2. 拖动根行标签 “Products” 到表格 A1 单元格,Excel 会自动完成标签与列的绑定;
  3. 元素映射完成后,数据即可准备导出。

Excel工作表,XML元素已映射到列标题。

步骤5:导出为 XML

  1. 选中已映射数据的区域,回到 “开发工具” 选项卡;
  2. 点击 “导出”,设置文件保存路径与名称,确认后即可生成标准 XML 文件。

导出的 XML 文件会与架构保持一致,示例如下:

在浏览器中显示的最终XML文件。

推荐阅读:轻松将 Excel XLS/XLSX 文件转换为 HTML_

方法二:免费 Excel 转 XML 在线转换工具

适用人群:临时快速转换、零基础用户、单次少量文件;
重要提醒:禁止上传财务、隐私、涉密数据,在线工具存在数据泄露风险。

工具 1:CloudxDocs(操作简单)​

  • 访问 CloudxDocs EXCEL TO XML 转换工具。
  • 上传 Excel 文件(支持 XLS、XLSX、XLSB 格式)。​
  • 等待转换完成,下载生成的 XML 文件。

该工具默认生成保留 Excel 格式的 XML 电子表格文件。

使用CloudxDocs在线工具将Excel转换为XML。

工具 2:FreeCodeFormat(支持自定义 XML 结构)

  • 访问 FreeCodeFormat Excel转XML转换器。​
  • 上传 Excel 文件(.xlsx、.xls格式)。
  • 自定义 “根节点名称” 和 “项目节点名称”。
  • 点击 “转换为XML”,随后可复制或下载生成的 XML 文件。

该工具支持自定义 XML 结构,例如指定专属的根元素、行元素,且可在下载前预览XML内容。

Excel转XML在线转换并自定义根元素和行元素。

方法三:使用 Python 自动化转换 Excel 到 XML

对于 Python 开发人员和 IT 从业者而言,免费库 Free Spire.XLS for Python 提供了一套强大的代码驱动型解决方案,无需安装 Microsoft Excel 即可将 Excel 电子表格转换为 XML 格式。该方案非常适合服务端自动化和应用集成场景。

步骤1:安装依赖

打开命令行(CMD / 终端),执行安装命令:

1
pip install Spire.XLS.Free

步骤2:Excel 转 XML 的 Python 代码示例

以下脚本通过 Spire.XLS 读取 Excel 表格数据,再借助 Python 内置的 xml.etree.ElementTree(构建结构)和 minidom(美化格式)生成 XML 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom

# 加载Excel文件
workbook = Workbook()
workbook.LoadFromFile("示例.xlsx")

# 获取第一个工作表
worksheet = workbook.Worksheets[0]

# 获取行和列的数量(Spire.XLS采用1-based索引)
max_row = worksheet.LastRow
max_col = worksheet.LastColumn

# 检查是否存在数据(第1行是表头,数据从第2行开始)
if max_row < 2:
raise ValueError("未找到数据!请确保表头在第1行,数据从第2行开始。")

# 创建XML根元素
root = ET.Element("信息")

# 遍历数据行(跳过第1行:表头)
for row in range(2, max_row + 1):
# 创建行元素(例如<Order>)
row_element = ET.SubElement(root, "产品")

# 遍历列,获取表头和值
for col in range(1, max_col + 1):
# 获取表头(作为XML标签)
header = worksheet.Range[1, col].Value

# 获取单元格值(作为XML标签的内容)
cell_value = worksheet.Range[row, col].Value

# 创建子元素并添加值
ET.SubElement(row_element, header).text = str(cell_value)

# 格式化XML(添加缩进,提升可读性)
rough_string = ET.tostring(root, 'utf-8')
reparsed = minidom.parseString(rough_string)
pretty_xml = reparsed.toprettyxml(indent=" ")

# 保存到XML文件
with open("产品.xml", 'w', encoding='utf-8') as f:
f.write(pretty_xml)

# 关闭工作簿
workbook.Dispose()

代码说明:

  • 读取 Excel:通过 Spire.XLS 加载文件,自动识别有效数据范围;
  • 构建XML结构
    • 创建XML根元素 <信息>
    • 遍历每一行数据(从第2行开始),为每行创建一个 <产品> 元素。
    • 遍历该行的每一列:将第1行的表头作为 XML 标签,单元格值作为标签内容。
  • 保存 XML:为 XML 添加缩进(提升可读性),并保存为 XML 文件。

示例输出XML

使用Python将Excel转换为结构化XML文件

Free Spire.XLS for Python 还提供了直接的 SaveAsXml() 方法,可用于将 Excel 转换为 SpreadsheetML 格式

总结

将 Excel 转换为 XML 是数据跨系统流转的核心基础技能,它能将零散的表格数据转化为机器可识别的标准化格式,完美适配 Web 应用、接口对接、配置文件及各类企业业务系统。从可控性强的 Excel 原生 XML 映射,到零门槛的在线快速转换,再到支持自动化批量处理的 Python 企业级方案,不同方法覆盖了从个人办公到企业级开发的全场景需求,可根据数据量级、敏感程度与技术能力灵活选型。

Excel 转 XML 常见问题

Q1:如何批量将多个 Excel 文件转换为 XML?

当需要转换10个以上文件时,批量转换能节省时间,可根据自身技术水平选择以下方法:

  • 在线工具:Zamzar 支持单次批量转换最多50个文件(上传所有 Excel 文件,选择 “XML” 作为输出格式,最终会生成包含所有 XML 文件的压缩包)。
  • Free Spire.XLS for Python:扩展上述脚本,遍历指定文件夹中的文件:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import os
from spire.xls import *
import xml.etree.ElementTree as ET
from xml.dom import minidom

input_folder = "C:/Excel_Batch" # 输入文件夹(存放Excel文件)
output_folder = "C:/XML_Batch" # 输出文件夹(存放XML文件)
os.makedirs(output_folder, exist_ok=True) # 确保输出文件夹存在

for filename in os.listdir(input_folder):
if filename.endswith((".xlsx", ".xls")):
workbook = Workbook()
workbook.LoadFromFile(os.path.join(input_folder, filename))
# 此处添加与单文件转换相同的逻辑
workbook.Dispose()

Q2:能否自定义 XML 结构(例如修改根/行标签)?

可以,所有方法均支持自定义:

  • 手动转换:编辑 XML 架构(.xsd 文件),修改根标签或行标签。
  • 在线工具:FreeCodeFormat 等工具支持在设置中自定义根元素和行元素名称。
  • Python 脚本:修改脚本中的 ET.Element("RootName")ET.SubElement(root, "RowName") 代码行,适配自定义名称。

Q3:如果数据包含公式,XML 输出会保留公式还是计算结果?

几乎所有场景下,XML 导出的都是公式的计算结果(公式运行后的数值),而非公式本身。XML 的核心用途是表示数据,而非存储背后的逻辑或计算规则。转换过程会读取单元格的可见值。

Q4:打开 XML 文件后格式混乱,如何正确格式化?

这些方法生成的 XML 通常是无换行、无缩进的压缩格式,但仍属于合法 XML。如需以易读格式查看:

  • 用现代浏览器(Chrome、Firefox、Edge)打开,浏览器会自动格式化并清晰展示。
  • 使用代码编辑器(如 VS Code、Notepad++、Sublime Text),这类工具内置 XML 格式化功能,或可通过插件实现重新缩进。

拓展阅读