【python自动化】基于python的excel自动化办公技巧总结

本文介绍如何使用Python批量创建、打开及重命名Excel文件,并演示了按照固定样式新建Excel文件的方法。此外,还提供了利用xlwings和pandas库实现Excel数据处理与VLOOKUP功能的示例。

python批量创建excel文件


import xlwings as xw

app = xw.App(visible=True,add_book=False)

for dept in ['A_section','B_section','C_section','D_section']:
    workbook = app.books.add()
    workbook.save(f'./期末成绩-{dept}.xlsx')

python批量打开excel文件


import xlwings as xw
import os

app = xw.App(visible=True,add_book=False)

for file in os.listdir('.'):
    if file.endswith('.xlsx'):
        app.books.open(file)

按照固定样式新建excle文件

import xlwings as xw
import os
import shutil

datas = [('数学','小明'),('物理','小刚'),('语文','小红'),('英语','小一')]

app = xw.App(visible=False,add_book=False)

for subject,instrutor in datas:
    target_excel = f'{instrutor}-{subject}-成绩.xlsx'
    shutil.copy('数学成绩.xlsx',target_excel)
    workbook = app.books.open(target_excel)
    worksheet = workbook.sheets[0]
    worksheet["A1"].value = worksheet["A1"].value.replace('{subject}',subject)
    worksheet["A2"].value = worksheet["A2"].value.replace('{instrutor}', instrutor)
    workbook.save()
    workbook.close()
app.quit()

python批量重命名excel工作表

import xlwings as xw
import os
import shutil


app = xw.App(visible=False,add_book=False)
workbook = app.books.open('数学成绩.xlsx')

for sheet in workbook.sheets:
    sheet.name = sheet.name.replace('成绩','')

workbook.save()
app.quit()

python实现多个表的vlookup函数

import xlwings as xw
import pandas as pd

# 启动excel APP并打开excel
app = xw.App(visible=False,add_book=False)
workbook = app.books.open('副本副本成绩汇总.xlsx')

# 读取成绩表
df_total = (
    workbook
    .sheets[0]
    .range("A1")
    .options(pd.DataFrame,expand = 'table',index = False,number = int)
    .value
)
print(df_total)

df_student_list = []

for sheet in list(workbook.sheets)[1:]:
    class_ = {
        '电话1':'1班',
        '电话2':'2班',
        '电话3':'3班',
        '电话4':'4班'
        }[sheet.name]
    df_student = (
        sheet.range("A1")
            .options(pd.DataFrame, expand='table', index=False, number=int)
            .value)
    df_student['班级']=class_
    df_student_list.append(df_student)

df_student_all = pd.concat(df_student_list)
print(df_student_all)

# 数据合并
df_merge = pd.merge(
    left=df_total,
    right=df_student_all,
    left_on=['班级','姓名'],
    right_on=['班级','姓名']
)
print(df_merge)

df_merge['电话号码'] = df_merge['电话']
df_merge.drop(columns='电话',inplace=True)

# 更新表格
workbook.sheets[0].range('A1').options(index=False).value = df_merge

# 保存和关闭
workbook.save()
workbook.close()
app.quit()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wency(王斯-CUEB)

我不是要饭的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值