xlwings批量重命名工作表

在同一个工作簿中有多个有规律的表名,对名称进行重命名,利用worksheets[i].name.replace(old_name,new_name)方法进行

 

#批量重命名一个工作簿中所有的工作表

import xlwings as xw
file_path = '/Users/hugua/Desktop/python_practise/统计表.xlsx'
app = xw.App(visible=True,add_book=False)
workbook = app.books.open(file_path)
worksheets = workbook.sheets
for i in range(len(worksheets)):
worksheets[i].name = worksheets[i].name.replace('销售','')
workbook.save('/Users/hugua/Desktop/python_practise/统计表1.xlsx')

#打印更改后的工作表名
new_file_path = '/Users/hugua/Desktop/python_practise/统计表1.xlsx'
new_workbook = app.books.open(new_file_path)
new_worksheets = new_workbook.sheets
for a in new_worksheets:
print(a)
app.quit()

结果:

<Sheet [统计表1.xlsx]分部一>
<Sheet [统计表1.xlsx]分部二>
<Sheet [统计表1.xlsx]分部三>
<Sheet [统计表1.xlsx]分部四>
<Sheet [统计表1.xlsx]分部五>
<Sheet [统计表1.xlsx]分部六>
<Sheet [统计表1.xlsx]分部七>

 

如果只进行部分工作表名称的更改,比如只改前五个表名称,则需要使用切片功能,修改代码,完整代码如下:

#批量重命名一个工作簿中所有的工作表

import xlwings as xw
file_path = '/Users/hugua/Desktop/python_practise/统计表.xlsx'
app = xw.App(visible=True,add_book=False)
workbook = app.books.open(file_path)
worksheets = workbook.sheets
for i in range(len(worksheets))[:5]:
worksheets[i].name = worksheets[i].name.replace('销售','')
workbook.save('/Users/hugua/Desktop/python_practise/统计表2.xlsx')

#打印更改后的工作表名
new_file_path = '/Users/hugua/Desktop/python_practise/统计表2.xlsx'
new_workbook = app.books.open(new_file_path)
new_worksheets = new_workbook.sheets
for a in new_worksheets:
print(a)
app.quit()

结果显示如下:

<Sheet [统计表2.xlsx]分部一>
<Sheet [统计表2.xlsx]分部二>
<Sheet [统计表2.xlsx]分部三>
<Sheet [统计表2.xlsx]分部四>
<Sheet [统计表2.xlsx]分部五>
<Sheet [统计表2.xlsx]销售分部六>
<Sheet [统计表2.xlsx]销售分部七>

结果中可以看到前五个工作表的名称被修改了,后面两个没改变。

 

posted @ 2021-12-25 21:58  Guangqin_Hu  阅读(1278)  评论(0编辑  收藏  举报