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

如何在不使用zipfile模块的情况下从openpyxl工作表对象获取XML源码?

获取openpyxl Worksheet对象的XML代码

可以直接借助openpyxl内置的序列化能力提取XML,无需使用zipfile模块,具体实现如下:

  • 调用Worksheet对象的to_tree()方法,生成对应XML的元素树结构
  • 使用openpyxl封装的tostring工具将元素树转为XML字符串

示例代码:

from openpyxl import load_workbook
from openpyxl.xml.functions import tostring

wb = load_workbook('file.xlsx')
ws = wb['Sheet1']

# 生成工作表对应的XML元素树
sheet_xml_tree = ws.to_tree()
# 序列化为格式化的XML字符串
sheet_xml_str = tostring(sheet_xml_tree, encoding='utf-8', pretty_print=True).decode('utf-8')

# 输出XML内容
print(sheet_xml_str)

补充:获取工作表的关系XML

如果需要获取对应工作表的关系配置XML(即xlsx包中sheet.xml.rels文件的内容),可以通过Worksheet的rels属性处理:

rels_xml_tree = ws.rels.to_tree()
rels_xml_str = tostring(rels_xml_tree, encoding='utf-8', pretty_print=True).decode('utf-8')
print(rels_xml_str)

说明:

  • to_tree()是openpyxl Worksheet类的内部方法,会根据当前工作表的数据和配置生成标准的Sheet XML结构
  • openpyxl.xml.functions.tostring是适配openpyxl元素的序列化工具,比直接使用lxml原生方法更兼容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:20:05