XML文件凭借良好的结构可读性被广泛应用于数据交换场景,但在日常数据处理中,CSV格式更便于表格工具直接操作,Excel的Power Query功能也提供了原生的XML数据导入能力,下面分别介绍两种处理方案。

方案一:使用Python将XML转换为CSV
如果XML文件结构规整,且需要批量处理多个文件,使用Python脚本转换是高效的选择。核心思路是解析XML的节点结构,提取目标字段后写入CSV文件。
准备工作
需要提前安装xml.etree.ElementTree和csv标准库,无需额外安装第三方依赖。
示例代码
import xml.etree.ElementTree as ET
import csv
# 解析XML文件
tree = ET.parse("input.xml")
root = tree.getroot()
# 定义CSV表头,对应XML中的子节点名称
headers = ["id", "name", "age"]
# 打开CSV文件准备写入
with open("output.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
# 写入表头
writer.writerow(headers)
# 遍历XML中的每个数据记录节点,假设记录节点名为record
for record in root.findall("record"):
# 提取每个字段的内容,若无内容则设为空字符串
row = [
record.find("id").text if record.find("id") is not None else "",
record.find("name").text if record.find("name") is not None else "",
record.find("age").text if record.find("age") is not None else ""
]
writer.writerow(row)
print("XML转换为CSV完成")
上述代码假设XML的结构如下,实际使用时需要根据你的XML节点名称调整findall和find的参数:
<root>
<record>
<id>1</id>
<name>张三</name>
<age>25</age>
</record>
<record>
<id>2</id>
<name>李四</name>
<age>28</age>
</record>
</root>
方案二:使用Excel Power Query直接导入XML数据
如果不想编写代码,Excel内置的Power Query功能可以直接解析XML文件并加载为表格数据,无需提前转换为CSV。
操作步骤
- 打开Excel,点击顶部菜单栏的数据选项卡
- 在获取和转换数据区域,选择获取数据 - 来自文件 - 从XML文件
- 在弹出的文件选择窗口中,找到需要导入的XML文件,点击打开
- 此时会弹出Power Query编辑器,自动解析XML的层级结构,你可以在左侧的预览区域展开节点,选择需要导入的数据表
- 确认数据无误后,点击关闭并上载,数据就会加载到Excel工作表中
处理复杂XML结构的技巧
如果XML有多层嵌套,Power Query可能会将数据拆分为多个关联的表,你可以点击表左上角的展开按钮,选择需要合并的字段,将多层数据平铺为单一表格。如果需要调整数据类型,可以选中列,右键选择更改类型,选择对应的数据格式即可。
两种方案的选择建议
如果需要批量处理大量XML文件,或者需要定制化的字段提取逻辑,优先选择Python转换方案;如果只是偶尔处理单个XML文件,且熟悉Excel操作,Power Query方案更便捷,无需编写任何代码。无论选择哪种方案,都可以最终得到便于Excel分析的表格数据。
XMLCSVExcelPower_Query修改时间:2026-07-09 09:09:11