Python办公

来源:互联网 发布:linux如何ping ip 编辑:程序博客网 时间:2024/04/28 05:17

今天帮招办处理几个Excel表格,都是一些机械的重复操作,所以考虑使用Python和VBA合作来完成自动化操作,现将操作步骤记录下来以供以后使用。

Python批量修改文件名

这个很简单,只需要以下几行代码即可

import osfor i in range(80):    filename = "xs2016-%d系-带专业代号.xlsx" % i    dstfilename = "xs2016-%d系-不带专业代号.xlsx" % i    print os.path.exists(filename)    print filename    if(os.path.exists(filename)):        print filename        os.rename(filename,dstfilename)

效果如下
这里写图片描述

VBA操作表格

第二步是需要进入Excel后删除每个表里的部分列,这里我们使用Excel自带的宏来完成。
按照
http://jingyan.baidu.com/article/90895e0fe9ee6164ec6b0b09.html
这个教程提供的录制宏的方法录制后,得到的宏如下

Sub 删除专业代号()'' 删除专业代号 宏'' 快捷键: Ctrl+b'    Columns("AN:AY").Select    Selection.Delete Shift:=xlToLeftEnd Sub

这里写图片描述

注意这里的位置为所有打开的工作簿而不是当前的工作簿。

把它的快捷键设置为Ctrl + B,然后在Python里模拟键盘输入,再使用循环即可对所有的表格执行删除操作。核心代码如下。

import osimport win32apiimport win32conimport timeos.startfile("带专业代号\\xs2016-1系-带专业代号.xls")time.sleep(5)win32api.keybd_event(17,0,0,0)  #ctrl键位码是17win32api.keybd_event(66,0,0,0)  #B键位码是66win32api.keybd_event(66,0,win32con.KEYEVENTF_KEYUP,0) #释放按键win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)

通过Python模拟鼠标和键盘以及VBA即可实现诸如Office、Auto CAD等常用软件的批量处理。

0 0
原创粉丝点击