python批量操作excel表格

前言

此内容为B站转载

跳转

对于这篇文章我先说下一个概念

预缓存:在cpu中执行,可被调用和执行,执行结束后,被丢弃

缓存:存储到硬盘

需引用 os ,xlings,pands 等库

#引入库
import os
import xlwings as xw  #as相当于,给xlwings起小名,下一句同理
import pandas as pd
#批量打开文件
def a01():
    app = xw.App(visible=False, add_book=False)  #启动excel
    for file in os.listdir("."):     #遍历文件名
         if file.endswith(".xlsx"):  #判断如果以".xlsx"结尾则为true
             app.books.open(file)    #打开文件
#一键创建excel表格
def a02():
    app = xw.App(visible=True, add_book=False)  # visible=True:看到创建库的过程,
    # 解读:给app这个量修饰                          #add_book=False: 不添加book
    for dept in ["w001", "w002", "w003", "w004", "w005"]:  # 创建的excel文件名
        workbook = app.books.add()  # 把app做成excel表格并传给变量workbook (预缓存) 

        workbook.save(f"./{dept}.xlsx")  # 存储路径及命名(缓存)
#批量合并excel文件.py
def a03():

    import pandas as pd
    import os
    data_list = []
    for filname in os.listdir('.'):  # 遍历目录
        if filname.startswith("产品统计-") and filname.endswith(".xlsx"):
            data_list.append(pd.read_excel(filname))  # 用pandas读取表格传入data_list

    data_all = pd.concat(data_list)  # 把所有表格合并,相当于临时缓存
    data_all.to_excel("汇总表格.xlsx", index=False)  # 输出到汇总表格.xlsx文件
#批量重命名excel表格的表
def a04():
    app = xw.App(visible=False, add_book=False)
    workbook = app.books.open("统计表.xlsx")
    for sheet in workbook.sheets:      #遍历excel表格的表
        sheet.name = sheet.name.reqlace()
    workbook.sace()  #保存
    app.quit()       #退出
#拆分excel文件到多个文件.py
def a05():
    df = pd.read_excel("产品统计表.xlsx")  # 读取"产品统计表.xlsx"传给df
    products = df["产品名称"].unique()  # 提取产品名称那列,并去重
    for product in products:  # 遍历产品名称
        df_product = df[df["产品名称"] == product]  # 提取 遍历得到的产品名称所对应的列的数据
        df_product.to_excel(f"产品统计表-{product}.xlsx")   #重命名
#两个excel文件比较
def a06():
    app=xw.App(visible=False, add_book=False)  #启动excel
    book = app.books.add("aaa.xlsx")                #打开原文件
    book_backup = app.books.save("$aaa.xlsx")()     #打开备份文件
    for row in book.sheets[0].range("A1").expand(): #遍历备份文件的每一行
        for cell in row:                            #遍历备份文件的每一个单元格地址
            backUP_cell = book_backup.sheets.range(cell.address)   #获取备份单元格的地址
            if cell.value != backUP_cell.value:     #比较对应单元格的地址的值
                cell.color =backUP_cell.color =(255,0,0)  #若为true 单元格的颜色改为红色
    book.save()         #保存退出
    book.close()
    book_backup.save()  #保存退出
    book_backup.close()
    app.quit()          #关闭excel

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值