【问题描述】使用Python如何批量删除指定路径下所有Excel文件里的指定工作表呢?
示例:如何批量删除下图中各个Excel文件里的“IP电话”工作表呢?
【小千解答】使用glob库获取Excel文件清单,使用xlwings库删除目标工作表。
代码如下:
import glob import xlwings as xw xqpath = 'D:\\xqoffice' xqApp = xw.App(add_book=False) for xqfile in glob.glob(xqpath + '\**\[!~]*.xlsx',recursive=True): xqbok = xqApp.books.open(xqfile) xqbok.sheets['IP电话'].delete() xqbok.save() xqbok.close() xqApp.quit()
注解:[!~]表示不是~字符。打开Excel文件进行编辑期间,会在相同路径下生成文件名以~开头的临时文件,它消失的速度慢于Excel的关闭,glob也会获取到该文件名,为避免被处理报错,故添加[!~]进行排除。
【参考资料】