跳到主要內容

發表文章

目前顯示的是有「Uipath」標籤的文章

RPA-Uipath(7)-OCR相關技術

在 UiPath 中, OCR (Optical Character Recognition) 功能可以用來識別並提取圖像或掃描文件中的文本內容,使機器能夠理解並處理這些文本數據。 UiPath 提供了多個 OCR 引擎的選擇,每個引擎都有一些差異,包括效果、支持語言、速度等方面。以下是常見的幾個 OCR 引擎及其差異: 以下我們介紹兩種用 OCR 取得文字的方式與 4 種 OCR 引擎。 1.      利用 Load Image + OCR 引擎取得整張圖像中的文字。 a.          非雲端服務: Micorsoft OCR, Tessract OCR b.         雲端服務: Google Cloud Vision, Micosoft Azure Computer Vision < 特別注意 > : l    Google Cloud Vision à 屬性欄位中的 Apikey 為必要填寫,以下提供教學影片如何取得 API key 。 l    Micosoft Azure Computer Vision à 屬性欄位中的 Apikey 與 EndPoint 為必要填寫,以下提供教學影片如何取得 API key 。 [ 補充 ] : l    “Google Cloud Vision” API key 取得方式參考影片: https://www.youtube.com/watch?v=cld-An4u_I8 l    “Micosoft Azure Computer Vision” API key 與 end point 取得方式參考影片: https://www.youtube.com/watch?v=hSzMtcEUtHk 2.    利用 Get OCR Text + OCR 引擎取得整張圖像中的文字或部分區域的文字。 7.1 Load Image + OCR 引擎取得整張圖像中的文字 < 範...

RPA-Uipath(6)-如何讀取檔案的相關日期與時間

這一篇我們主要要說明如何批次將檔案的 ” 建立時間 ” 、 ” 修改時間 ” 、 ” 存取時間 ” 擷取出來,並整理匯出一個 Excel 表格。 在說明之前,我們簡單說明一下我們要擷取的是那些時間,我們可以針對任一個檔案,按下右鍵,選取內容,就會跳出該檔案的相關資訊,其中就有所謂的 ” 建立時間 ” 、 ” 修改時間 ” 、 ” 存取時間 ” ,如下圖所示,我們的目的就是將這些時間一一擷取出來。 要擷取以上的這些時間,需要用到 FileInfo() 物件,用法如下: 1.      建立時間: new FileInfo( 檔案路徑 ).CraeationTime.ToString( 日期時間格式 ) 2.      最後修改時間: new FileInfo( 檔案路徑 ).LastWriteTime.ToString( 日期時間格式 ) 3.      最後存取時間: new FileInfo( 檔案路徑 ).LastAccessTime.ToString( 日期時間格式 ) 因為我們的範例要批次讀取一個資料夾中多個檔案,所以會用到 Directory.GetFiles( 資料夾路徑 ) ,此函數會回傳資料夾中所有檔案的路徑並以 List 型態儲存。 以下我們說明我們如何用 Uipath 達到此目的: 我們一開始先用 FilePathList 變數儲存資料夾中所有檔案的路徑,建立一個空的 DataTable ,其中我們建立了四個欄位 ”FileName” 、 ”CreationTime” 、 "LastModifiedTime" 、 ”LastAccessTime” 。 接下來,利用 For Each 對每一個檔案,擷取以上四個資訊並分別用四個變數儲存 FileName 、 FileCreationTime 、 FileLastModifiedTime 、 FileLastAccessTime 並將次四個資訊放入 DataTable 中 ( 利用 Add Data Row 的 Activity) 。 For Each 結束後,我們將 DataTable 寫入 Excel 中並存於同一個資料夾,如下圖所示。

RPA-Uipath(5)-如何讀取Mail與取得Mail的資訊

本篇主要介紹 Uipath 取得 mail 相關資訊與附件的方法,因為 mail 的種類眾多,本範例以 Gmail 為例。首先在使用 Uipath 取得 Gmail 相關資訊前須對 Google 帳戶的安全性進行兩階段驗證設定,設定方式如下: Step1. 點選 ” 管理你的 Google 帳戶 ” Step2.  點選 ” 安全性 ” à ” 兩階段驗證 ” à 點選 ” 開始使用 ” Step3.  依 Google 所提示步驟,您最後會取得一組密碼,請務必將此密碼記下。 接下來要開始使用 Uipath 擷取 mail 相關資訊,一開始我們先使用 Get Password 儲存 mail 登入的密碼,此時密碼不是使用您真正的密碼而是使用剛剛兩階段驗證後取得的密碼,並儲存於變數 password 。 接下來使用 Get IMAP Mail Messages 來取得 mail 的相關資訊,在使用 Get IMAP Mail Messages 時必須在其屬性設定區塊進行一些參數設定。 Port 欄位填入 993 , Server 欄位填入 "imap.gmail.com" , Email 欄位填入您的 Email , Password 欄位填入 變數 password , Message 欄位我們用 MailMessage 變數填入 Mail 的相關資訊都會存在 MailMessage 變數中,我們可以用 For Each 迴圈逐一取得 mail 的相關資訊。 For Each 的屬性區塊部分也需要進行一些參數設定, List of item 欄位需填入 MailMessage 變數, TypeArgument 則須設定為 System.Net.Mail.MailMessage 。 設定完成後,我們先用 Write Line 將信件的主旨印出做為測試( 這邊我們只印出前 5 封信件的主旨,可在 Get IMAP Mail Messages 的屬性區塊中 Top 欄位中設定 ),如果要印出信件主旨,需要用 item.Subject 屬性,如要印出其他資訊,我們將常用的幾個列在以下表格: 最後,有些信件會附帶一些附件,我們如何將這些物件儲存下來呢 ? 這邊只需要用到 Save Attachments 即可。我們將其放在迴圈內以下載每個有附件的 mail...

RPA-Uipath(4)-DataTable的資料查找(Lookup功能)

我在進行多個資料表彙整合併時,常常會需要知道A資料表的某個值在B資料表中對應到某一行的資料為何,Uipath提供了一個類似Excel Vlookup功能的函數讓我們可以達到此目的。以下我們用一個簡單例子說明: 我們先建立一個Data Table 如下,並存在ExampleDT變數中: 我在Data Table中設計了兩個欄位,第一個欄位是Name,第二個欄位是Grade,在Grade的部分我們故意設計了幾個異常值,例如NA,空值等,待會我們會用Lookup Data Table的功能進行Grade的查找,並判斷Grade是否為數值,是的話顯示Grade,不是的話顯示異常訊息。 我們利用Input Dialog的輸入視窗來讓我們輸入我們要查找的人名而輸入結果會被儲存在Name變數中。 Lookup Data Table的使用細節要注意一下,請看右方屬性區域,分別有四大區塊,Input、Lookup Column、Output、Target Column,以下針對這四個區塊進行說明: (1) Input Input區塊有兩個參數,DataTable與LookupValue,DataTable是放我們想要查找的資料所在的DataTable,即上述的ExampleDT。LookupValue則是放我們要查找的值,即上述的Name。 (2) Lookup Column Lookup Column則代表我們要查找的Column,當我們的Data Table有表頭時,可以直接在ColumnName填入表頭名稱,如果沒有表頭,則可以在ColumnIndex填入第幾行。 (3) Ouput Ouput有兩個參數,CellValue與RowIndex,CellValue是回傳結果,RowIndex是回傳結果所在的列數,如果你今天想要知道查找結果,我們建立一個變數Result,將其放入CellValue,結果就會被指定到Result中。 這邊我們特別將Result變數設定成Object型態以可以處理各種資料型態的資料。 (4) Target Column Target Column即你想要查找的資料所在的Column,以上述為例,我們想要輸入名字,回傳Grade,所以我們想查找的結果就是Grade欄位,所以我們在ColumnName填入Grade,表示我們想要查找我們輸入的名字他的Gra...

RPA-Uipath(3)-Numeric判定

 我們很常遇到需要判斷變數是不是數值型態(Numeric),是的話執行A流程,不是的話執行B流程。在Uipath中我們可以使用isNumeric(Var)這個函數,這個函數回傳值為True或False,非常適合用在if條件敘述。我們以下分別舉幾個例子做說明: 1. 我們建立一個整數變數VarInt,指定一個整數給它,我們用isNumeric(VarInt)來判斷變數值是否為數值,是的話回傳"VarInt is numeric variable",不是的話回傳"VarInt is not numeric variable"。很明顯的結果應該要是"VarInt is numeric variable"。 2. 我們建立一個浮點數變數VarDouble,指定一個浮點數給它,我們用isNumeric(VarDouble)來判斷變數值是否為數值,是的話回傳"VarDouble is numeric variable",不是的話回傳"VarDouble is not numeric variable"。很明顯的結果應該要是"VarDouble is numeric variable"。 3. 我們建立一個字串變數VarStrInt,指定一個數值型字串給它,我們用isNumeric(VarStrInt)來判斷變數值是否為數值,是的話回傳"VarStrInt is numeric variable",不是的話回傳"VarStrInt is not numeric variable"。我們發現結果竟然回傳"VarStrInt is numeric variable",這代表isNumeric()這個函數主要是偵測變數值是否可以被識別為數字,不需要一定是數值型變數才會回傳True。 4. 我們建立一個字串變數VarStr,指定一個非數值型字串給它,我們用isNumeric(VarStr)來判斷變數值是否為數值,是的話回傳"VarStr is numeric variable",不是的話回傳"VarStr is not numeric variable"。很明顯的結果應該...