辦公自動化12-word批量替換(將替換內容寫在excel里)


有些時候,需要批量替換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里將數字格式設置為‘文本’哦

有問題歡迎留言^_^


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM