当前位置: 首页 > 办公技巧 > 正文

用pathon处理excel办公技巧(用Python操作Excel文件技巧,实在好用)

  • 叁碗诸角 叁碗诸角
  • 办公技巧
  • 2023-08-29 01:43:02
  • 0

带你走进 @ 机器人时代

Discover 点击上面蓝色文字关注我们


Python
操作Excel文件的功能也很强大,也许有人会说,直接用鼠标操作不好吗?是的,手动操作也不慢,但是如果重复操作几百遍,或者每天都要操作几十遍,是不是很烦?

打个比方,某个软件每天都会生成数十百个数据报告文件在软件根目录,老板要求你把这些文件重命名,移到一个指定的共享文件夹,让全公司的人都可以分享数据结果。每天操作数百次复制、粘贴、重命名。。。你是否觉得像个机器人?

关键是没有技术含量,让你觉得你就像一个肉做的鼠标

,使用程序自动化处理,可以抽点空学习一下新知识、新技能,为升职加薪打点基础吧。

我们来看一个简单的代码,将程序文件同目录的‘求职申请数据.xslx’文件移动到table目录下,并重新命名为当天的数据记录:

from pathlib import Pathimport datetimetoday=datetime.date.today()#选择要移动的文件old_p = Path('求职申请数据.xlsx')#给出需要移动到的位置和新的文件名new_p = Path(f'table/{today}求职信息表.xlsx')#执行操作old_p.rename(new_p)


运行后,我们在table 目录下就可以发现一个带有当天日期的Excel文件:


如果工作需要,我们想得到刚才保存的文件的相关信息,我们该怎么做呢?

import osfrom pathlib import Pathf = Path('2022-12-02求职信息表.xlsx')#绝对路径jd_path= os.path.abspath(f)#相对路径p = f.parent#文件名(含扩展名)f_n = f.name#文件名(不含扩展名)s_n = f.stem#文件扩展名sf_n = f.suffixprint(jd_path)print(p)print(f_n)print(s_n)print(sf_n)输出结果:E:Python程序2022-12-02求职信息表.xlsx.2022-12-02求职信息表.xlsx2022-12-02求职信息表.xlsx


这样,我们可以开始更多复杂的文件操作。如果在自动化的过程中,我们希望机器人自动搜索文件夹目录下的xlsx文件,并打印出来,我们可以使用下面的代码实现:

from pathlib import Pathr = Path('F:Excel')#目录路径可替换list1 = r.glob('*.xls*')#搜索扩展名xlsx文件lists = []#创建一个列表保存文件名for i in list1: n = i.name lists.append(n)print(lists)运行结果:['1.xlsx', '2.xlsx', '3.xlsx']


如果我们希望创建一个新的工作簿,代码如下:

import xlwings as xw#创建操作对象app = xw.App(visible=False, add_book=False)w = app.books.add()#命名文件名并保存w.save('1月销售表.xlsx')#关闭对象w.close()app.quit()


运行后,在程序文件目录下,我们会得到一个‘1月销售表’的文件,打开:

默认只有一个工作表的Excel文件。如果我们使用循环语句,会得到数个新的工作表,代码如下:

import xlwings as xwapp = xw.App(visible=False, add_book=False)for i in range(1, 6): w = app.books.add() w.save(f'学生成绩表{i}.xlsx') w.close()app.quit()


如果需要机器人自动打开工作簿,代码很简单:

import xlwings as xwapp = xw.App(visible=True, add_book=False)w = '1月销售表.xlsx'app.books.open(w)

运行后,桌面得到打开的文件:

工作中,我们经常碰到这样的情况,客户发过来的是xls文档,当我们处理完以后生成xlsx文档发给客户,客户却打不开,这时候我们需要进行个数转换,怎么实现呢?

from pathlib import Pathimport xlwings as xwapp = xw.App(visible=False, add_book=False)#定义需要转换的目录w = Path('F:/')#定义文件格式l = w.glob('*.xls')#通过循环处理for i in l: #读取目录下所有的xlsx文件 n_l = str(i.with_suffix('.xlsx')) #打开工作簿 w1 = app.books.open(i) #另存为xls格式# 56代表.xls. 51代表.xlsx w1.api.SaveAs(n_l, FileFormat=51) w1.close()app.quit()


这样就很轻松地实现文件格式的转换,即使成百上千的文件转换也是很快的事情。

继续坚持学习,每天都能进步一点!!!

往期回顾:


来来来,送你一个金牌销售机器人,7X24小时不休,不要工资免费用!不要嫌你现在的工作很累,可能你离失业不远了!作为旅游行业的一个小老板,我受够了!这是要被淘汰的节奏吗?

本文引用和摘录相关内容,请联系侵删。

- END -

最后,文章有帮助到你的话点赞在看
励我们分享更多的干货!


最新文章