使用Python的docx包处理Word文档中的图表信息相关问题
Python-docx 访问Word嵌入式图表方案
python-docx 原生内置了图表处理接口,无需通过通用嵌入式对象底层接口解析,操作方法如下:
基础访问方式
- 首先确保安装了最新稳定版的
python-docx依赖 - 遍历文档的
inline_shapes集合,通过has_chart属性筛选图表对象:
from docx import Document # 加载Word文档 doc = Document("target.docx") # 遍历所有嵌入式元素 for shape in doc.inline_shapes: if shape.has_chart: # 获取图表实例 current_chart = shape.chart # 打印基础属性验证 print(f"图表类型:{current_chart.chart_type}") # 遍历图表数据 for series in current_chart.series: print(f"系列名:{series.name}, 数据值:{list(series.values)}")
常见操作示例
修改图表数据
from docx.chart.data import CategoryChartData # 构造新的图表数据集 chart_data = CategoryChartData() chart_data.categories = ["Q1", "Q2", "Q3", "Q4"] chart_data.add_series("产品A", [230, 150, 380, 290]) chart_data.add_series("产品B", [180, 260, 210, 340]) # 替换现有图表数据 current_chart.replace_data(chart_data) # 保存修改后的文档 doc.save("updated.docx")
注意事项
- 仅支持标准Office Open XML格式的
.docx文件,二进制.doc格式无法直接处理 - 如果你需要处理浮动式图表(非嵌入式排版的图表),替换遍历对象为
doc.shapes即可,判断逻辑一致 - 非Office原生生成的非标格式图表可能存在识别失败的情况
内容的提问来源于stack exchange,提问作者Clarence Ong
相关产品推荐
相关产品推荐

