You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python将指定XML文件解析转换为XLSX文件

将指定XML转换为XLSX文件的实现方案

首先需要修正你提供的XML中的语法错误:原XML里的?\>、obs id="0"\>、</obs\>这类写法里多余的反斜杠需要去掉,修正后的合法XML如下:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<obs id="0">
<dim name="Column1" value="a"/>
<dim name="Column2" value="b"/>
</obs>
<obs id="1">
<dim name="Column1" value="tr"/>
<dim name="Column2" value="yu"/>
</obs>

下面用Python结合标准XML解析库和openpyxl库实现转换,步骤清晰且易复用:

实现步骤

  1. 安装依赖库(未安装过的话执行):
pip install openpyxl
  1. 编写转换代码:
import xml.etree.ElementTree as ET
from openpyxl import Workbook

# 加载XML文件(如果是字符串形式,可替换为ET.fromstring(xml_str))
tree = ET.parse('input.xml')
root = tree.getroot()

# 提取表头:取第一个obs节点下的dim的name属性作为列名
headers = [dim.get('name') for dim in root.findall('./obs[1]/dim')]

# 提取所有行数据
rows = []
for obs in root.findall('obs'):
    row_data = [dim.get('value') for dim in obs.findall('dim')]
    rows.append(row_data)

# 创建XLSX文件并写入数据
wb = Workbook()
ws = wb.active

# 写入表头
ws.append(headers)

# 逐行写入数据
for row in rows:
    ws.append(row)

# 保存生成的XLSX文件
wb.save('output.xlsx')

代码说明

  • 用xml.etree.ElementTree解析XML,通过XPath定位obs和dim节点,提取所需属性值
  • 用openpyxl创建Excel工作簿,先写入表头再逐行填充数据
  • 默认所有obs节点下的dim数量、顺序完全一致;若存在不一致场景,可额外添加逻辑按表头匹配对应value

内容的提问来源于stack exchange,提问作者Marco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 22:25:22