使用Excel,存在一些基础重复性的操作工作,这些在日常工作可能会浪费很多的时间,通过python,可实现一些基础的操作,帮助日常办公高效操作Excel,主要梳理如下:
1.基础包:
Pathlib:操作工作簿的路径基础包 Xlwings:操作Excel工作簿的基础包 Pandas:读写相关操作
2.涉及到的操作
- 查看路径/移动路径
- 新建工作簿
- 打开已有工作簿
- 重命名工作簿
- 转化工作簿格式
- 拆分工作簿
- 合并工作簿
- 加密工作簿
3 关键代码
3.1 移动工作簿路径
说明:只能在同一个盘幅内移动
'''
代码1:移动工作簿
说明:移动工作簿从old_path路径移动到new_path路径
关键方法:rename()
'''
from pathlib import Path
old_path = Path('D:\\python\\test_file\\test_excel.xlsx')
new_path = Path('D:\\python\\test_table\\test_excel.xlsx')
old_path.rename(new_path)
new_path.rename(old_path)
'''
3.2 解析查看基础路径信息
说明:查看基础路径,文件格式等基础信息
'''
代码2:解析工作簿的基础路径信息
主要属性:parent;stem,name,suffix
'''
#from pathlib import Path
file_path = Path('D:\\python\\test_file\\test_excel.xlsx')
# 获取文件夹路径
path = file_path.parent
#获取文件名
file_name = file_path.name
#获取文件主名
file_stem = file_path.stem
#获取文件扩展名后缀
file_suf = file_path.suffix
print(path,file_name,file_stem,file_suf)
3.3 获取文件路径下相关文件信息
说明:根据关键词模糊匹配即可
'''
代码3:获取文件夹下所有工作簿名称
主要方法:glob
'''
from pathlib import Path
fold_path = Path('D:\\python\\test_file\\test_excel.xlsx')
#茶轴啊符合指定规则的文件或文件夹并返回路径
file_list = fold_path.glob('*xlsx')
lists = []
for i in file_list:
file_name = i.name
lists.append(file_name)
print(lists)
3.4 新建并保存
说明:新建工作簿,并存储到指定路径
'''
代码4:新建并保存工作路径
主要包:xlwings
主要对象:APP
主要方法:
新建:add()
保存:save()
关闭:close()
退出:quit()
'''
import xlwings as xw
#打开Excel程序
app = xw.App(visible=False,add_book=False)
#新建工作簿
workbook = app.books.add()
#保存工作簿
workbook.save('D:\\python\\test_file\\test_excel01.xlsx')
#关闭工作簿
workbook.close()
#退出Excel程序
app.quit()
3.5 打开文件
说明:打开已经保存工作簿
'''
代码5:打开一个已有的工作簿
主要包:xlwings
主要方法:open()
'''
import xlwings as xw
app = xw.App(visible=False,add_book=False)
path_text = 'D:\\python\\test_file\\test_excel.xlsx'
app.books.open(path_text)
3.6 重命名工作簿
说明:重命名现有的工作簿
'''
代码6:重命名工作簿
主要包:pathlib
主要方法:
构造新路径:withname()
执行重命名操作:rename()
'''
from pathlib import Path
old_path = Path('D:\\python\\test_file\\test_excel.xlsx')
folder_path = Path('D:\\python\\test_file\\test_excel.xlsx')
new_excel = 'myexcel.xlsx'
#替换原先路径中的文件名,得出新的路径
new_file_path = folder_path.with_name(new_excel)
#移动路径
old_path.rename(new_file_path)
3.7 修改文件格式
说明:修改现有文件的文件格式,类似另存为新文件;这里分成两段代码说明相关函数的适用方法
'''
代码7:修改文件格式
主要方法:
修改文件后缀:with_suffix()
另存为:SaveAs()
'''
from pathlib import Path
import xlwings as xw
old_path = Path('D:\\python\\test_file\\test_excel.xlsx')
app = xw.App(visible=False,add_book=False)
# 修改文件格式,并转化为字符串对象
new_file_path01 = str(old_path.with_suffix('.xls'))
workbook = app.books.open(old_path)
workbook.api.SaveAs(new_file_path01,FileFormat=56)
workbook.close()
app.quit()
# 第二段代码
from pathlib import Path
import xlwings as xw
old_path = Path('D:\\python\\test_file\\test_excel.xlsx')
app = xw.App(visible=False,add_book=False)
new_file_path = 'D:\\python\\test_file\\new_excel.xls'
workbook = app.books.open(old_path)
workbook.api.SaveAs(new_file_path,FileFormat=56)
workbook.close()
app.quit()
3.8 多个sheet拆分为新Excel
说明:即一个Excel里的sheet表新建成多个Excel
'''
代码8:多个表格sheet表拆分为新工作簿
主要函数:
复制表格:copy()
'''
import xlwings as xw
app = xw.App(visible=False,add_book=False)
file_path = 'D:\\python\\test_file\\sheets_excel.xlsx'
workbook = app.books.open(file_path)
worksheet = workbook.sheets
for i in worksheet:
# 新建工作簿
new_workbook = app.books.add()
# 新建工作簿sheet
new_worksheet = new_workbook.sheets[0]
# 将来源工作簿的当前工作表复制到新建工作簿的第一个工作表之前
i.copy(before=new_worksheet)
new_workbook.save('D:\\python\\test_file\\{}.xlsx'.format(i.name))
new_workbook.close()
app.quit()
参考截图效果:
3.9 多个Excel合并为一个Excel
说明:将多个Excel合并为一个Excel
'''
代码9:多个工作簿合并为一个工作簿
使用包:pathlib,pandas
主要函数:
读取Excel:read_excel()
写入Excel:to_excel()
'''
from pathlib import Path
import pandas as pd
folder_path = Path('D:\\python\\test_file\\month\\')
file_list = folder_path.glob('*.xlsx*')
with pd.ExcelWriter('D:\\python\\test_file\\month\\总表.xlsx') as workbook:
for i in file_list:
# 获取工作簿文件名称
stem_name = i.stem
# 读取工作簿第一个sheet表的内容
data = pd.read_excel(i,sheet_name=0)
# 读取数据,写入新建的工作簿中
data.to_excel(workbook,sheet_name=stem_name,index=False)
3.10 加密工作簿
说明:对工作簿做加密处理
'''
代码10:加密保护工作簿
'''
import xlwings as xw
file_path = 'D:\\python\\test_file\\总表.xlsx'
app = xw.App(visible=False,add_book=False)
workbook = app.books.open(file_path)
workbook.api.Password = '123'
workbook.save()
workbook.close()
app.quit()
参考截图效果:
|