会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132494个问题
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 93楼

import xlrd,xlwt
from xlutils.copy import copy

#读取excel
def read_excel():
    #打开excel文件
    read_wb = xlrd.open_workbook('./creat_excel/08count_data.xlsx')
    #获取工作簿
    read_ws = read_wb.sheet_by_index(0)
    #遍历数据集
     #统计
    count_price = []#各水果总价列表
    fen_type = {} #各品级水果总价字典
    for r in range(1,read_ws.nrows):
        count = read_ws.cell_value(r,2)*read_ws.cell_value(r,3)
        count_price.append(count)
        key = read_ws.cell_value(r,0)
        fen_type[key] = count
        if fen_type.get(key):
            fen_type[key] += count
        else:
            fen_type[key] = count
    return count_price,fen_type

#保存数据
def save_excel(count,fen):
    #打开excel文件
    read_wb = xlrd.open_workbook('./creat_excel/08count_data.xlsx')
    read_ws = read_wb.sheet_by_index(0)
    #复制并修改
    new_wb = copy(read_wb)
    new_ws = new_wb.get_sheet(0)
    #总价计算
    for r in range(1,read_ws.nrows):
        new_ws.write(r,4,count[r-1])
    #创建单独工作表
    new_ws2 = new_wb.add_sheet('汇总数据')
    for i,key in enumerate(fen.keys()):
        _type = key
        data = fen.get(key)
        #汇总类和总价
        new_ws2.write(i,0,key)
        new_ws2.write(i,1,data)
    #保存数据
    new_wb.save('./creat_excel/09count_data.xlsx')

if __name__=='__main__':
    c,f = read_excel()
    save_excel(c,f)

执行结果

image.png汇总结果不正确

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

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 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 98楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/自动化操作办公软件、邮件、定时任务等 99楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/办公自动化 100楼
Python 全系列/ 第十四阶段:自动化操作办公软件、邮件、定时任务等/办公自动化 101楼

报错1.png

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

image.png

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

课程分类

百战程序员微信公众号

百战程序员微信小程序

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