会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 128778个问题

import xlrd # 先读取数据
from xlutils.copy import copy

# 开始写方法
def read_data(): # 先读文件
    wb = xlrd.open_workbook('./base_date/data01.xlsx') #打开excel文件
    sh = wb.sheet_by_index(0) # 打开工作簿
    fen_type = {} # 记录总的价格 {a:100,b:300}
    count_price = [] # 记录每一个单品的总价格 [1,2,3,4,5]

    # 遍历每一行数据
    for r in range(sh.nrows):
        count = sh.cell_value(r,3) * sh.cell_value(r,4)
        count_price.append(count) # 吧计算的值保存在count_price里
        key = sh.cell_value(r,0)
        if fen_type.get(key):
            fen_type[key] += count
        else:
            fen_type[key] = count

    return fen_type,count_price # 各分类的总价值,每个单品的总价值

def save(fen,count):
    wb = xlrd.open_workbook('./base_date/data01.xlsx')
    sh_t = wb.sheet_by_index(0)
    wb2 = copy(wb)
    sh = wb2.get_sheet(0)
    for r in range(sh_t.nrows):
        sh.write(r,sh_t.ncols,count[r])

    sh2 = wb2.add_sheet('汇总的数据')
    for i,key in enumerate(fen.keys()):
        sh2.write(i,0,key)
        sh2.write(i,1,fen.get(key))
    wb2.save('/create_date/05_汇总数据.xlsx')

if __name__ == '__main__':
    f,c = read_data()
    save(f,c)

image.png

老师,这个提示是不是说明pycharm不支持excel数据汇总操作,这一节的学习只能用vscode?

Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 31楼

代码已经把老师的复制过来运行了,结果还是报这个错误,问题出在了哪里

data01.xlsx

import xlrd
from xlutils.copy import copy

def read_data():
    wb = xlrd.open_workbook('data01.xlsx')
    sh = wb.sheet_by_index(0)
    fen_type = {}       # {a:110,b:300}
    count_price = []    # [1,2,3,4,5,6]

    for r in range(sh.nrows):
        count = sh.cell_value(r,3) * sh.cell_value(r,4)
        count_price.append(count)
        key = sh.cell_value(r,0)
        if fen_type.get(key):
            fen_type[key] += count
        else:
            fen_type[key] = count
    return fen_type,count_price # 各分类的总价值, 每个单品的总价值

def save(fen,count):
    wb = xlrd.open_workbook('data01.xlsx')
    sh_t = wb.sheet_by_index(0)
    wb2 = copy(wb)
    sh = wb2.get_sheet(0)
    for r in range(sh_t.nrows):
        sh.write(r,sh_t.ncols,count[r])
    
    sh2 = wb2.add_sheet('汇总的数据')
    for i,key in enumerate(fen.keys()):
        sh2.write(i,0,key)
        sh2.write(i,1,fen.get(key))
    wb2.save('05_汇总数据.xlsx')

if __name__ == "__main__":
    f,c = read_data()
    save(f,c)

151.png

Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 32楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 33楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 34楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 35楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 38楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 43楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 44楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 45楼

百战程序员微信公众号

百战程序员微信小程序

©2014-2024 百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637