天天看點

如何使用SAP Intelligent Robotic Process Automation自動操作Excel

今天是鼠年正月十二。這是Jerry鼠年的第11篇文章,也是汪子熙公衆号總共第210篇原創文章。

之前Jerry的文章

使用ABAP操作Excel的幾種方法

,介紹的是通過ABAP這門程式設計語言去操作Excel的方法。

除了程式設計語言之外,SAP新釋出的SAP Intelligent Robotic Process Automation(簡稱SAP iRPA),提供了強大的企業級自動化流程解決方案,善加利用,可以在不需要程式設計的情況下,像使用程式設計語言一樣靈活地操作Excel.

我們來看個具體而又簡單的例子,用SAP Intelligent Robotic Process Automation操作一個Excel檔案,往裡面的單元格寫入一個字元串,設定背景色然後關閉。

在動手做這個例子之前,你也許需要先閱讀這兩篇文章,以了解SAP iRPA的上下文。

打開SAP Intelligent Robotic Process Automation Desktop Studio,導入SAP預置的操作Excel的nodejs腳本庫檔案。

在庫檔案裡選擇Excel Integration. 從下圖能發現,SAP iRPA除了Excel之外,也支援Office裡其他應用比如Word和Outlook.

建立一個名叫jerryExcel的workflow,在工作流的activities面闆裡輸入seq,找到類型為Sequence的Flow控件。該控件允許我們在工作流裡定義一系列順序執行的步驟。

把Sequence控件拖拽到工作流編輯區域裡,輕按兩下,就可以定義需要執行的詳細步驟了。

Excel Lib裡預置了很多圍繞Excel進行的操作,如Init Excel,Open Excel,Close Excel等等,每個操作對應一段nodejs代碼。

比如把Init Excel拖拽到Sequence控件的Activities清單裡之後,一旦儲存,會立即看到自動生成的nodejs代碼。Excel Lib裡每個step,都對應一段nodejs代碼。如此一來,即使SAP Intelligent Robotic Process Automation Desktop Studio的使用者沒有程式設計基礎,也能開發出能操作Excel的自動化工作流。

上圖的Init Excel步驟是所有操作Excel的工作流都必須執行的一個初始化步驟。初始化完畢後,把Open Excel這個步驟拖拽到Sequence Activities裡,指定要打開的Excel檔案路徑,在Desktop Studio裡有紅色提示。

把本地Excel檔案的絕對路徑維護進去:

第三步,設定打開的Excel第1行,第1列的值為'Hello Jerry':

第四步,設定第1行第1列的背景色:

将修改之後的Excel另存成另一個檔案。執行這個項目,就會在temp檔案夾裡看到另一個Excel檔案。

這個例子非常簡單,讓我們來看看它的工作原理。

切換到Script面闆,在第45行打開Excel的代碼處設定斷點,然後單步調試:

斷點一旦觸發,我們能觀察到工作列裡出現一個Excel的應用視窗提示,沒有顯示任何内容:

在任務管理器能看到該應用通過參數/automation -Embedding的方式啟動:

我們想單步調試進ctx.excel.file.open方法内,發現斷點并沒有在open方法内停下來,而是直接執行完這個方法,此時工作列上的應用标題從Excel更換成了open方法打開的檔案名:1.xlsx.

從以上任務管理器裡觀察到的/automation和embedding參數,我們已經能判斷出,SAP iRPA操作Excel的實作原理,和Jerry文章

中提到的第一種方法,即通過OLE方式操作Excel是一緻的。

如果非要刨根究底,可以到SAP iRPA SDK安裝目錄下,打開excel.js檔案,找到open方法的實作,發現其調用了_excelApp對象的WorkBooks.Open方法:

而_excelApp對象,在initialize方法裡通過GetObject從OLE對象Excel.Application中擷取:

還記得Jerry文章

裡提到的ABAP OLE實作源代碼麼?也是采用同樣的方式擷取Excel應用對象,連編碼方式都如出一轍。

既然已經聊到JavaScript操作Excel的話題了,就順便提一句,目前另一種流行的JavaScript操作Excel的開源庫,即Node-xlsx,原理是基于Office Open XML協定去解析Excel檔案,ABAP也有對應的基于Office Open XML的實作:CL_XLSX_DOCUMENT.

這種方式較之SAP iRPA采用的OLE解決方案,優勢在于避免了對Excel應用的依賴,多用于伺服器端對Excel的處理任務。

至此,采用SAP技術操作Excel的方案大家族裡,又增添了一位新的成員:SAP iRPA. 希望本文對大家開闊眼界有所幫助,感謝閱讀。

更多閱讀