大家好,給大家分享下如何使用Python腳本操作Excel實現批量替換。
使用的工具
Openpyxl,一個處理excel的python庫,處理excel,其實針對的就是WorkBook,Sheet,Cell這三個最根本的元素~
明確需求原始excel如下
我們的目標是把下面excel工作表的sheet1表頁A列的內容“替換我吧”批量替換為B列的“我用來替換的x號選手”
實現替換后的效果圖,C列為B列替換A列的指定內容后的結果
實現以上功能的同時,我也實現excel的復制操作,比較簡單~
開始吧!
1. 加載已有excel
我們使用的庫是openpyxl,首先調用load_workbook('Path')
加載預先準備的excel,新建sheet頁讓我們的小成果更方便展示~
import openpyxl as xlwb = xl.load_workbook('C://Users/huan.li/Desktop/MultiSubstitute.xlsx') # 加載excel文件wb.create_sheet('新建sheet頁', index = 2) # 新建sheet
2. sheet頁操作
為了方便,我們把所有sheet頁賦值到一個列表listSheet[]
中;
復制sheet頁,相當于復制整個excel的內容,然后用循環實現Cell的設置:
listSheet = wb.sheetnames # 加載所有的sheet頁sheet = wb[listSheet[0]] # 選擇一個sheet頁sheet2 = wb[listSheet[2]]# 復制sheetfor i in range(1, sheet.max_row+1): sheet2['A{0}'.format(i)].value = sheet['A{0}'.format(i)].value sheet2['B{0}'.format(i)].value = sheet['B{0}'.format(i)].value
3. 加入excel函數實現批量替換操作
excel中有一個SUBSTITUTE函數,可以實現列與列之間的替換
利用循環實現批量替換
for i in range(1, sheet2.max_row+1): sheet2['C{0}'.format(i)] = '=SUBSTITUTE(A{0},"替換我吧",B{1})'.format(i, i)
3. 保存處理好的excel
沒能實現保存在load_workbook('Path')
函數加載進來的原本的excel中,這邊只保存到了一個新的excel,但是這步,恰恰實現了復制excel的操作
wb.save('C://Users/huan.li/Desktop/MultiSubstitute_new.xlsx')
最終效果
復制的新的excel~
實現的替換~
總結
新聞熱點
疑難解答