藝賽旗 RPA10.0全新首發免費下載 點擊下載
http://www.i-search.com.cn/index.html?from=line1
一、需求:
如上圖所示,文件爲 docx 格式,需要從 Excel 表格取出數據,填入上圖對應的單元格內。
二、分析:
Excel 取數據,這裏我們可以輕鬆拿到。問題是,我們如何將取出的數據填入到 Word 表格中。因爲 Word 裏面的表格不同 Excel,在 Excel 裏面,我們可以任意填入對應的單元格。但是在 Word 裏面,我們並不可以這樣快捷的實現。
三、實現方法:
1、若 Word 中的表格並不複雜,且沒有衆多的格式,如:logo,且客戶對格式要求並不太高。我們可以參 使用代碼寫 Word 表格 ,直接寫一個 Word 表格,並將需要填入的數據填寫進去。
2、若 Word 中的表格複雜,且帶有自定義的格式,且格式是不容許改變。上面的方法就不太適用了。話不多說,代碼如下:
import win32com.client
import win32com
word = win32com.client.Dispatch(‘Word.Application’)
word.Visible = 0 # 後臺運行
word.DisplayAlerts = 0
wordpath = r’\Mac\Home\Desktop\國金\附件3:證券賬戶開立申請表(用印版).docx’
wc = win32com.client.constants
doc = word.Documents.Open(wordpath)
word.Selection.Find.ClearFormatting()
word.Selection.Find.Replacement.ClearFormatting()
word.Selection.Find.Execute(‘模板1’, False, False, False,False,False, True, 1, True, ‘上海藝賽旗’, 2)
word.Selection.Find.Execute(‘模板2’, False, False, False,False,False, True, 1, True, ‘123456’, 2)
word.Selection.Find.Execute(‘模板3’, False, False, False,False,False, True, 1, True, ‘test’, 2)
doc.Save()
word.Documents.Close()
word.Quit()
實現思路:
如下圖:
在上圖方框中,我們在須填寫的單元格,寫上了「模板」字樣,這樣,我們可以把後面替換後的值設爲參數,便可實現替換預設的固定字段,且不會影響 Word 的格式。
最終實現如下:
so,後面的只需要都在 Word 模板中設置好固定的字段,在代碼中實現替換並可生成一份需要的文檔了。