RPA實戰:--Word 表格填寫信息(證券案例)

藝賽旗 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 模板中設置好固定的字段,在代碼中實現替換並可生成一份需要的文檔了。