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

使用openpyxl将单元格引用设为XY散点图数据系列名称的问题

你需要调整Series对象的title属性赋值即可实现需求,错误点是你误用了不存在的SeriesLabel属性,正确修改如下:

核心修改代码

替换你原来设置系列名称的两行代码:

# 错误写法
series = Series(values, xvalues, title_from_data=False)
series.SeriesLabel = xl.chart.data_source.StrRef( "'Sheet'!C3")

# 正确写法
series = Series(values, xvalues)
series.title = xl.chart.data_source.StrRef("'Sheet'!C3")

Series对象的title属性原生支持StrRef类型的单元格引用赋值,和图表标题的引用逻辑一致,调整后生成的Excel文件中,修改Sheet工作表C3单元格的内容,图表对应系列的名称会同步更新,完全符合绑定单元格引用的需求。

完整修改后的测试代码

import numpy as np
import pandas as pd
import openpyxl as xl
from tkinter import filedialog
from openpyxl import load_workbook
from openpyxl import Workbook
from openpyxl.chart import (
    ScatterChart,
    Reference,
    Series,
)
from openpyxl.drawing.line import LineProperties
from openpyxl.chart.shapes import GraphicalProperties
from openpyxl.chart.trendline import Trendline


sampleData = [["Data1","Title goes here:","Dummy Title"],
              ["CFM", "SP","HP"],
              [5000,0.1,4.0],
              [4500,0.2,4.1],
              [4000,0.3,4.2],
              [3500,0.5,4.2],
              [3000,0.8,4.2],
              [2500,1.1,4.2],
              [2000,1.5,4.2],
              [1500,1.8,4.2],
              [1000,2.0,4.3]
              ]

wb = Workbook()
ws = wb.active

for row in sampleData:
    ws.append(row)

c1 = ScatterChart()
c1.title = "" 
c1.title.tx.strRef = xl.chart.data_source.StrRef( "'Sheet'!C1")
xvalues = Reference(ws, min_col=1, min_row=3, max_row=11)
values = Reference(ws, min_col=2, min_row=2, max_row=11)
# 仅修改此处两行代码即可
series = Series(values, xvalues)
series.title = xl.chart.data_source.StrRef("'Sheet'!C3")

c1.series.append(series)
ws.add_chart(c1, "B15")
wb.save("default.xlsx")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 15:54:06