首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >一用add_chart就报错?

一用add_chart就报错?

提问于 2020-09-14 01:14:35
回答 0关注 0查看 232

以下是我的源代码。

代码语言:javascript
复制
# -*- coding: utf-8 -*-
# 主题:自动化办公excel处理及数据分析
# 主题:1、怎么创建表格 2、添加元素 3、取出元素 4、设置颜色
# 学生: 邓文标
from openpyxl import Workbook #导入excel工具包模块
from openpyxl.chart import PieChart,Reference #导入饼图及填充模块
#import openpyxl
#--------------1、怎么创建表格---------------------
#创建一个excel文件
wb = Workbook() #注意是大写的W,创建一个表格
cs1 = wb.create_sheet('我是生命1号') #在表格中创建表,如果要查函数参考信息ctrl+左键
cs2 = wb.create_sheet('我是生命2号')
cs3 = wb.create_sheet('我是生命3号')
cs4 = wb.create_sheet('我是生命4号',2)
#--------------2、添加元素-----------------------
#添加数据(注意在写数据是不能打开excel文档,否则会无法运行)
cs4['a1'] = 666
cs4['b1'] = 777
cs4['c2'] = '邓文标'
#添加多个数据(一行多列)
num = [1,2,3,4,5,6,7,8,9]
cs4.append(num)
#添加3列,然后再添加5行(相当于添加一个小表格多行多列)
data = [
    ['城市名称','GDP','管理者'],
    ['长沙',11,'张三'],
    ['广州',22,'李四'],
    ['北京',33,'王五'],
    ['上海',44,'马六'],
]
#通过for循环添加到表中
for name in data:
    #按行添加
    cs3.append(name) #注意本行要缩进不能顶格
#----------------数据分析开始----------------------
"""python的块注释"""
#模具(数据分析饼状图)
pie = PieChart()
pie.title = '论时间的重要性'
#计算数据的表头
label = Reference(cs3,min_col=1,min_row=2,max_row=5)
#数据
datas = Reference(cs3,min_col=2,min_row=2,max_row=5)
#将饼图添加到cs3的a10位置
cs3.add_chart('a10')
"""pie.add_data(datas)
pie.set_categories(label)
"""

#----------------数据分析结束----------------------

#--------------3、取出元素-----------------------
#取表中的数(单行或单列取值)
#for name in cs4['1']: #第一行行用数字,列用字母如第一列就用'a'
    #print(name.value)
#取表中的数用for循环嵌套
#方式一按多行或多列取值cs4['1':'3']或cs4['a':'c']
#方式二取表中的数(根据指定范围取数)如cs4['a2':'f3']
for name in cs4['a':'c']:
    print(name)
    for item in name:
        print(item.value)
#--------------4、设置颜色-----------------------
#RGB颜色值转换成十六进制颜色码网址https://www.sioe.cn/yingyong/yanse-rgb-16/
cs1.sheet_properties.tabColor = 'FFFF00' #纯黄(注意是十六进制的,因此不能是#FFFF00)
cs2.sheet_properties.tabColor = '00B400' #绿色
cs3.sheet_properties.tabColor = 'FFC0CB' #粉红
cs4.sheet_properties.tabColor = '0000FF' #纯蓝

wb.save('D:\pycharmProjects\pythonProjectdemo\dwb.xlsx') #将表格保存,不写路径就是当前路径

报错信息

D:\Python38\python.exe D:/pycharmProjects/pythonProjectdemo/自动化办公excel文件处理.py

(<Cell '我是生命4号'.A1>, <Cell '我是生命4号'.A2>, <Cell '我是生命4号'.A3>)

666

None

1

(<Cell '我是生命4号'.B1>, <Cell '我是生命4号'.B2>, <Cell '我是生命4号'.B3>)

777

None

2

(<Cell '我是生命4号'.C1>, <Cell '我是生命4号'.C2>, <Cell '我是生命4号'.C3>)

None

邓文标

3

Traceback (most recent call last):

File "D:/pycharmProjects/pythonProjectdemo/自动化办公excel文件处理.py", line 70, in <module>

wb.save('D:\pycharmProjects\pythonProjectdemo\dwb.xlsx') #将表格保存,不写路径就是当前路径

File "D:\Python38\lib\site-packages\openpyxl\workbook\workbook.py", line 392, in save

save_workbook(self, filename)

File "D:\Python38\lib\site-packages\openpyxl\writer\excel.py", line 293, in save_workbook

writer.save()

File "D:\Python38\lib\site-packages\openpyxl\writer\excel.py", line 275, in save

self.write_data()

File "D:\Python38\lib\site-packages\openpyxl\writer\excel.py", line 75, in write_data

self._write_worksheets()

File "D:\Python38\lib\site-packages\openpyxl\writer\excel.py", line 218, in _write_worksheets

self._write_drawing(ws._drawing)

File "D:\Python38\lib\site-packages\openpyxl\writer\excel.py", line 136, in _write_drawing

chart._id = len(self._charts)

AttributeError: 'str' object has no attribute '_id'

Process finished with exit code 1。

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档