有些時候,需要批量替換word的內容,每次都打開‘查找替換’窗口比較繁瑣,這個時候我們可以把想要替換的內容放在excel里,如下圖
然后通過代碼實現word批量替換。
import xlrd from docx import Document #1.excel轉化為dict dir_case = 'C:\\Users\\17360\\Desktop\\test.xlsx' #存放替換內容的excel地址 data = xlrd.open_workbook(dir_case) table = data.sheets()[0]#數據是存放在excel的第一個sheet nor = table.nrows nol = table.ncols dict1 = {} for i in range(1,nor): for j in range(nol): title = table.cell_value(0,j) value = table.cell_value(i,j) dict1[title] = value #2.word批量替換 def check_and_change(document, replace_dict): """ 遍歷word中的所有 paragraphs,在每一段中發現含有key 的內容,就替換為 value 。 (key 和 value 都是replace_dict中的鍵值對。) """ for para in document.paragraphs: for i in range(len(para.runs)): for key, value in replace_dict.items(): if key in para.runs[i].text: print(key+"-->"+value) para.runs[i].text = para.runs[i].text.replace(key, value) return document old_file = 'C:\\Users\\17360\\Desktop\\test.docx' new_file = 'C:\\Users\\17360\\Desktop\\test1.docx' document = Document(old_file) document = check_and_change(document, dict1) document.save(new_file)
備注:如果想要替換數字的話,需要在excel里將數字格式設置為‘文本’哦
有問題歡迎留言^_^