- 批量重命名多个工作簿
- 批量重命名多个工作簿中的同名工作表
** 前提条件:要重命名的工作簿名必须是有规律的,如表1、表2、表3;或者含有相同的关键字**
import os #导入os模块
file_path = 'e:/table/text' #给出待命名工作簿所在文件夹的路径
file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称
old_book_name = 'text' #给出工作簿名中需要替换的旧关键字
new_book_name = 'table' #给出工作簿名中要替换为的新关键字
for i in file_list:
if i.startswith('~$'):#判断是否有文件名以“~$”开头的临时文件
continue #如果有,则跳过这种类型的文件
new_file = i.replace(old_book_name,new_book_name)#执行查找和替换,生成新的工作簿名
old_file_path = os.path.join(file_path,i)#构造需要重命名工作簿的完整路径
new_file_path = os.path.join(file_path,new_file)#构造重命名后工作簿的完整路径
os.rename(old_file_path,new_file_path)#执行重命名
代码解析
因为Excel会在使用过程中生成一些文件名以“~$”开头的临时文件,所以这里用第7行代码的if语句判断是否有这种类型的文件,如果有则跳过,不做处理,继续处理其他文件。
第9~11行代码用于构造工作簿的路径字符串,第12行代码则根据构造的路径字符串真正执行重命名操作
扩展
批量重命名多个工作簿中的同名工作表第7行代码中的startswith()是Python内置的字符串函数,用于判断字符串是否以指定的子字符串开头。该函数的语法格式和常用参数含义如下。需要注意的是,如果存在参数beg和end,则在指定范围内检索,否则将在整个字符串中检索。
第10行和第11行代码中的os.path.join()是os模块中的函数,用于把文件夹名和文件名拼接成一个完整路径,该函数的语法格式和常用参数含义如下
第12行代码中的rename()是os模块中的函数,用于重命名文件和 文件夹
import os #导入os模块
import xlwings as xw
file_path = 'e:/table/text' #给出待命名工作簿所在文件夹的路径
file_list = os.listdir(file_path) #列出文件夹下所有文件和子文件夹的名称
old_sheet_name = 'Sheet1' #给出需要修改的工作表名
new_sheet_name = '信息表' #列出修改后的工作表名
app = xw.App(visible=False,add_book=False)
for i in file_list:
if i.startswith('~$'):#判断是否有文件名以“~$”开头的临时文件
continue #如果有,则跳过这种类型的文件
old_file_path = os.path.join(file_path,i)
workbook = app.books.open(old_file_path)
for i in workbook.sheets:
if j.name == old_sheet_name: #判断工作表名是否为“sheet”
j.name = new_sheet_name #如果是,则重命名工作表
workbook.save()
app.quit()



