×

python 删除 工作表 glob xlwings

批量删除指定路径下所有Excel文件里的指定工作表

鹭岛小千 鹭岛小千 发表于2021-07-23 20:36:11 浏览1127 评论0

抢沙发发表评论

【问题描述】使用Python如何批量删除指定路径下所有Excel文件里的指定工作表呢?

示例:如何批量删除下图中各个Excel文件里的“IP电话”工作表呢?

27-1.png


【小千解答】使用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也会获取到该文件名,为避免被处理报错,故添加[!~]进行排除。

27-2.png


打赏码.png


【参考资料】

Python API


群贤毕至

访客