python办公自动化(4)拆分表格

四、前几天一直忙着摸鱼和休息,明天就要正式上课了开始。也要忙起来了,但正事还是不能忘,今天学习的是python自动化的第四节(拆分),主要还是利用的是xlrd,xlutils这两个,所以没有下载的可以根据前两篇文章进行下载。话不多少,先上图
(1)
这个是运行前的表格:
在这里插入图片描述
2.这是运行之后的表格

在这里插入图片描述
在这里插入图片描述
其他几个工作簿如上
代码如下

import xlrd
from xlutils.copy import copy#插入两个包,类似以前的操作
def readdata():
    sh=xlrd.open_workbook('分量.xlsx')#利用xlrd读取excel文件
    sh1=sh.sheet_by_index(0)#定位到第一个工作簿
    data={
    
    }#设置一个词典,用于存在一行数据以及所代表的的意义
    for i in range(1,sh1.nrows):#对列数进行循环
        d={
    
    'type':sh1.cell_value(i,1),'danjia':sh1.cell_value(i,2),'zongjia':sh1.cell_value(i,3)}#
        #将每一列数据存入一个字典
        key=sh1.cell_value(i,0)#将第一列的每行元素选为key
        if(data.get(key)):#如果数据存储过之后
            data[key].append(d)#那么将这个元素继续添加在这个之后
        else:
            data[key]=[d]#如果没有则将这个添加进去
    return data#返回一个字典
def caozuo(data):
    sh=xlrd.open_workbook('分量.xlsx')
    sh1=copy(sh)#用于修改的时候一般就要用copy
    sh1.get_sheet(0)#copy之后选择第一个就要用get_sheet
    for key in data.keys():#循环字典中的关键字
        sheet1=sh1.add_sheet(key)#将关键字作为工作簿名字插进去
        for i,d in enumerate(data.get(key)):#这个在前面有解释
            sheet1.write(i,0,d.get('type'))#get(‘type’)#可以得到这个关键字对应的值
            sheet1.write(i,1,d.get('danjia'))
            sheet1.write(i,2,d.get('zongjia'))
    sh1.save("now.xls")
if __name__ == '__main__':
    c=readdata()
    caozuo(c)```
好的,今天结束 2022.9.12

猜你喜欢

转载自blog.csdn.net/qq_45859272/article/details/126824036