Excel和xml是两种常用的数据载体,Excel适合人工编辑查看,xml适合系统间传输解析,将Excel转换为xml是数据处理中的常见需求。本文介绍两种不同场景下的转换方法,满足不同用户的使用需要。

方法一:使用Excel自带功能导出xml
如果你的Excel版本支持xml映射功能,可以直接通过软件内置功能完成转换,不需要额外安装工具,适合少量数据的快速处理。
操作步骤
- 打开需要转换的Excel文件,确保表格的第一行是字段名,后续行是对应的数据内容
- 点击顶部菜单栏的
开发工具选项卡,如果没有显示该选项卡,可以在文件-选项-自定义功能区中勾选开发工具 - 在开发工具选项卡中找到
xml分组,点击源按钮打开xml源面板 - 点击xml源面板中的
XML映射按钮,在弹出的窗口中点击添加,选择一个已有的xml架构文件,或者让Excel自动生成架构 - 将xml源面板中的字段拖拽到Excel表格对应的列上方,完成字段映射
- 点击
导出按钮,选择保存路径和文件名,即可生成对应的xml文件
注意事项
这种方法要求Excel表格的结构比较规整,如果表格存在合并单元格、空行等不规范内容,可能会导致导出失败或者生成的xml格式不符合预期。另外导出的xml结构受映射配置影响,需要提前确认架构是否符合使用要求。
方法二:使用Python编程实现转换
当需要批量处理多个Excel文件,或者需要自定义xml的生成规则时,使用Python编程是更高效的选择。这里使用openpyxl库读取Excel数据,使用xml.etree.ElementTree库生成xml文件。
环境准备
首先需要安装依赖库,在命令行中执行以下命令:
pip install openpyxl
代码实现
以下是完整的转换代码,支持将Excel的每一行数据转换为xml的一个节点,表格第一行的字段名作为xml的子节点名称:
import openpyxl
import xml.etree.ElementTree as ET
def excel_to_xml(excel_path, xml_path, root_name="data", item_name="item"):
# 加载Excel文件
wb = openpyxl.load_workbook(excel_path)
# 获取第一个工作表
ws = wb.active
# 获取表头,即第一行的内容
headers = []
for cell in ws[1]:
headers.append(cell.value)
# 创建xml根节点
root = ET.Element(root_name)
# 遍历数据行,从第二行开始
for row in ws.iter_rows(min_row=2, values_only=True):
# 创建单个数据项节点
item = ET.SubElement(root, item_name)
# 遍历表头和数据,生成子节点
for header, value in zip(headers, row):
if header is None:
continue
child = ET.SubElement(item, str(header))
child.text = str(value) if value is not None else ""
# 生成xml树并写入文件
tree = ET.ElementTree(root)
# 设置xml声明和编码
ET.indent(tree, space=" ", level=0)
tree.write(xml_path, encoding="utf-8", xml_declaration=True)
if __name__ == "__main__":
# 替换为你的Excel文件路径和输出的xml路径
excel_file = "test.xlsx"
xml_file = "output.xml"
excel_to_xml(excel_file, xml_file)
print("转换完成")
代码说明
上述代码首先通过openpyxl读取Excel文件的内容,提取第一行的表头作为xml的节点名称,然后遍历后续每一行数据,生成对应的xml结构。最后将生成的xml树写入到指定文件中,并且设置了utf-8编码和xml声明,保证生成的文件可以被正常解析。
如果需要自定义xml的结构,比如添加命名空间、修改节点层级,可以调整代码中创建节点的部分逻辑,灵活适配不同的需求。
两种方法的对比
以下是两种方法的适用场景对比,你可以根据实际需求选择合适的方式:
| 对比项 | Excel自带功能 | Python编程实现 |
|---|---|---|
| 适用场景 | 少量数据、一次性处理、无编程基础 | 批量处理、自定义规则、频繁转换 |
| 操作难度 | 低,图形化操作 | 中,需要基础编程知识 |
| 灵活性 | 低,受限于软件内置功能 | 高,可自定义任意xml结构 |
| 处理效率 | 低,大量文件时操作繁琐 | 高,可批量自动化处理 |
如果你只是偶尔需要转换单个Excel文件,优先选择Excel自带功能,操作简单快捷。如果需要处理大量文件或者有特殊格式要求,使用Python编程的方式会更高效,也更容易维护。
Excel转xml数据格式转换Python处理Excelxml生成openpyxl修改时间:2026-07-05 17:06:24