excel表格里生成的图表没有数据,总是有一个警告

来源:4-5 项目作业

梦还在梦里

2022-08-06 22:43:32

代码运行过一次可以生成正常的图表,后面再次运行总是有警告如下

# UserWarning: Unknown worksheet reference '学生等级' in range '学生等级!$A$1:$A$4' passed to add_series()
  warn("Unknown worksheet reference '%s' in range "
 # UserWarning: Unknown worksheet reference '学生等级' in range '学生等级!$B$1:$B$4' passed to add_series()
  warn("Unknown worksheet reference '%s' in range "

我的代码如下:

# coding:utf-8

import xlsxwriter


def creat_chart(path, data, **table_con):
    # 对象生成
    excel = xlsxwriter.Workbook(path)
    sheet = excel.add_worksheet('chart')
    # 数据添加
    sheet.write_column('A1', data[0])
    sheet.write_column('B1', data[1])
    n = len(data[0])
    # 生成图表对象
    chart = excel.add_chart({'type': 'radar'})
    # 添加图形
    chart.add_series({
        'categories': "=%s!$A$1:$A$%d" % (table_con['categories'], n),
        'values': "=%s!$B$1:$B$%d" % (table_con['categories'], n),
        'name': table_con['name']
    })
    chart.set_title({'name': f"{table_con['title']}"})
    sheet.insert_chart('A10', chart)
    excel.close()

if __name__ == '__main__':
    data = [
        ['优秀', '良好', '中', '差'],
        [1100, 2000, 1000, 900]
    ]
    creat_chart(
        'creat_chart.xlsx', data,
        categories='学生等级',
        name='成绩占比',
        title='成绩占比图'
    )

https://img.mukewang.com/climg/62ee7e100992b82116880735.jpg

写回答

1回答

好帮手慕凡

2022-08-07

同学,你好!

add_series( )方法中参数错误,categories、values的参数后应是“=工作表名称!坐标”,如下图:需要将表名统一

https://img.mukewang.com/climg/62ef21fa0974c9a714430850.jpg

祝学习愉快~

0

0 学习 · 4470 问题

查看课程