在同一个工作簿中有多个有规律的表名,对名称进行重命名,利用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]销售分部七>
结果中可以看到前五个工作表的名称被修改了,后面两个没改变。