openpyxl怎么修改excel图表的数据源

openpyxl怎么修改excel图表的值,openpyxl怎么修改excel图表的数据源,openpyxl怎么修改excel chart的数据源。
python怎么修改excel图表的值,python怎么修改excel图表的数据源,python怎么修改excel chart的数据源。

下面我将为大家提供一种解决方案:

from openpyxl import load_workbook
from openpyxl.chart import Reference
from openpyxl.chart.data_source import NumRef, NumDataSource
from openpyxl.chart.series import XYSeries

def change_chart_data_source(workbook,sheet_name,cat,val,chart_index):
    '''
    workbook:使用openpyxl load_workbook 打开的Excel文件
    sheet_name:需要修改的sheet的名字
    cat:新的类别源
    val:新的数据源
    '''

    cn_kpi_sheet = workbook[sheet_name]
    chart = cn_kpi_sheet._charts[chart_index]
    # 设置新的类别源
    chart.set_categories(cat)
    series = chart.series[0]
    # 设置新的数据源
    new_reference = val
    # Create a new NumRef object for the new reference
    new_num_ref = NumRef(f=new_reference)
    # Create a new NumDataSource object for the new NumRef
    new_data_source = NumDataSource(numRef=new_num_ref)
    # Update the series' value source
    if isinstance(series, XYSeries):
        series.yVal = new_data_source
    else:
        series.val = new_data_source


sheet_name = "your_sheet_name"
cat_range_string = f"'{sheet_name}'!$A$905:$A$935"
cat = Reference(range_string=cat_range_string )
val_range_string = f"'{sheet_name}'!$B$905:$A$935"
val = Reference(range_string=val_range_string )

workbook = load_workbook("your excel.xlsx")
change_chart_data_source(workbook,sheet_name,cat,val)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值