前言
此内容为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