欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Python操作Excel-路径相关

时间:2023-06-03

使用Excel,存在一些基础重复性的操作工作,这些在日常工作可能会浪费很多的时间,通过python,可实现一些基础的操作,帮助日常办公高效操作Excel,主要梳理如下:

1.基础包:

Pathlib:操作工作簿的路径基础包
Xlwings:操作Excel工作簿的基础包
Pandas:读写相关操作

2.涉及到的操作

查看路径/移动路径新建工作簿打开已有工作簿重命名工作簿转化工作簿格式拆分工作簿合并工作簿加密工作簿 3 关键代码 3.1 移动工作簿路径

说明:只能在同一个盘幅内移动

''' 代码1:移动工作簿说明:移动工作簿从old_path路径移动到new_path路径关键方法:rename()'''from pathlib import Pathold_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 Pathfile_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.suffixprint(path,file_name,file_stem,file_suf)

3.3 获取文件路径下相关文件信息

说明:根据关键词模糊匹配即可

'''代码3:获取文件夹下所有工作簿名称主要方法:glob'''from pathlib import Pathfold_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 xwapp = 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 Pathold_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 Pathimport xlwings as xwold_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 Pathimport xlwings as xwold_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 xwapp = xw.App(visible=False,add_book=False)file_path = 'D:\python\test_file\sheets_excel.xlsx'workbook = app.books.open(file_path)worksheet = workbook.sheetsfor 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 Pathimport pandas as pdfolder_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 xwfile_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()

参考截图效果:

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。