在同一個工作簿中有多個有規律的表名,對名稱進行重命名,利用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]銷售分部七>
結果中可以看到前五個工作表的名稱被修改了,后面兩個沒改變。