iT邦幫忙

2023 iThome 鐵人賽

DAY 9
2
IT管理

Five mins RPA | 機器人流程自動化系列 第 9

Five mins RPA | 9.Excel Processor 自動化處理模組

  • 分享至 

  • xImage
  •  

輕鬆處理EXCEL表格

身為一個數據分析師,每天跟大量的數據打交道是我們的日常生活,在現今資訊時代,數據處理變得越來越重要。在 RPA 模組中有 Excel Processor 處理模組,它能夠輕鬆處理 Excel 表格,將其轉換為CSV 或 EXCEL 檔案。這個模組能夠強大有效地處理數據,大量節省我們的作業時間,接下來幾章我們會深入介紹它的功能和如何熟稔的應用。

ExcelProcessor.png

回顧前一天文章:Five mins RPA | 8.RPA接收郵件統整

EXCEL Processor 模組簡介

Excel Processor 是一個用於處理EXCEL表格的工具,它的主要功能包括:

  • Excel 輸入檔

將你的 Excel 表格 Pick 到這個處理模組中。可以通過點擊選取檔案,或使用 %FILENAME% 變數來指定要處理的檔案。

  • Sheet 工作表格

在 Excel 中可能有多個工作表(Table)。我們可以指定要處理的工作表名稱,如果留空,模組預設的狀況會使用檔案中的第一個工作表。

  • DATA CELL

我們可以指定表格資料的起點(不包含表頭),我們可以在設定好 Data Cell 後點選 Detect 偵測欄位的 HEADER,系統會自動帶物其中。

  • HEADER

表格的表頭是數據的關鍵部分。你可以使用兩種不同的方式來指定表頭欄位:

  1. 簡單的一對一字串陣列:這種方式適用於簡單的表格,你只需提供一個一對一的字串陣列,其中每個字串對應到表格的一個表頭欄位。
  2. 彈性的物件陣列:如果你的表格結構較複雜,你可以使用這種方式。通過物件中的 regexp、偏移值 offset、A1 表示法等屬性,你可以更靈活地定位表頭欄位。每個物件還包括一個 name 屬性,用於指定找到的表頭欄位的名稱。
  • OUTPUT

最後可以指定輸出檔案的格式,支援 CSV 和 XLSX 兩種格式。

技能訓練:Excel Processor 自動化處理模組

  • 開啟 Excel Processor 處理模組

關於 Excel 模組系列一共有分成:Excel Processor/ Excel Analyzer/ Excel Writer/ CSV Creator 等模組功能,今天這篇文章主要著重在 Excel Processor 上。我們建立新的訓練並命名技能群組,打開主畫面右邊視窗中的 Excel Processor。

Main.png

  • 預覽資料表格

先提前預覽資料表格,查看資料型態,可以看到我們這個表格是鐵人賽科技的10月分銷售明細。

CSVread.png

  • 填寫 Excel Processor 模組內的資料

進入模組後填寫基本資料,挑選 (Pick) 我們的檔案位置,選擇我們要執行的工作表 (Table),並且在 Data Cell 中選擇我們需要使用的標頭名稱。舉例來說 A3 就是抓取 A整列的資料,它會自動在 HEADER 中帶入 ["銷售日期","銷售對象","商品名稱","數量","單價","銷售金額","營業稅","銷售金額合計"],最後選擇我們要輸出的資料格式。我們也可以在 Low-Code 寫入程式碼,為了進行下一步 Debug 測試可以先寫入以下程式。

console.log(input)

Fill.png

  • 打開 Debug 視窗做偵錯

打開 Debug 視窗,進入到 Console 後點選 Test 就可以進行測試, RPA 機器人自動把表格內資料整理起來,我們能夠從偵錯中找到資料代表執行成功。若不希望第 [0] 筆資料為表頭,可以回到上面的 Data Cell 將 A3 改為 A4,也就是從資料開始,就不會抓到表頭囉。

這次物件 (Object) 是由一群 key-value 的 Array 所組成,我們可以看到我們的標題對應上的資料。

  1. 可以看到各個 Row 的資料集: input[0], input[1]…….input[x]

Ans1.png

  1. 也可以展開來看到資料集內詳細的 Key- Value 參數

Ans2.png

  • 進一步 Low-Code 搭配條件式來取用資料

能夠撰寫 Low-Code 代表能夠有非常多種寫法,我們可以選定我們要的表格內容,利用 ForEach 搭配陣列的方式抓取內部的資料,並且將結果打印出來

input.forEach((row, index) => {
  console.log(index + '.商品名稱:' + row["商品名稱"] + ',價格:' + row["銷售金額"])
})

ForEach.png

我們點開 debug 資料後可以看到在 input 中看見資料細節,這時候我們就能夠搭配 if 判斷式來取用,舉例來說我可以選擇「銷售對象」為「無敵技術有限公司」,可以抓到無敵的資料。

input.forEach(row => { 	
	if(row["銷售對象"] === "無敵技術有限公司") console.log(row) 
})

condition.png

  • 利用 output.push 將結果匯出為 csv

將結果從打印轉成匯出 csv 檔案的方法跟前幾章相同,只需要在 Low-Code 的地方將 console.log(row) 改為 output.push(row) 就可以了,因此修正後的程式碼如下:

// input[{}] represe	nts row objects of excel sheet 
// output[{}] represents row objects of output sheet 
console.log(input) 
input.forEach(row => { 	
	if(row["銷售對象"] === "無敵技術有限公司") output.push(row) 
})
  • 結束訓練

Excel Processor 是一個強大且靈活的工具,可以幫助你處理EXCEL表格中的數據。它的功能豐富,讓你能夠輕鬆地處理各種不同結構的表格,並獲得高效的處理結果。無論你是處理大型數據集還是簡單的表格,這個模組都能夠滿足你的需求。

  • EXCEL 相關模組 I/O 比較
    這三個主要模組,都只有處理『資料』的運算,但並不處理包含字型、儲存格合併等等的『格式』運算
    Compare.png

這個世界瘋了,但我們也可以跟著瘋

黃仁勳的一句話讓這個世界都瘋了,身為與數據打交道多年的我們能做些什麼呢? 很簡單就是跟著一起瘋。「You Learn the more, you Get the more.」。沒想到鐵人賽又一年了呢,這篇是 【Five mins RPA】 系列文章除此之外也歡迎大家走走逛逛關於我過去的文章

Jerry Chien

一個正在為 300 多萬訂閱的 Youtuber 服務的資料科學家,擅長將商管行銷導入機器學習與人工智慧,並且從大量的數據中找出 Insight,待過 FMCG、Communication、Digital Marketing,最近一直在資訊圈打滾,趕著不被這波人工智慧浪潮給吞噬,寫文章寫了好一段時間了,期待著這個社會每個人能在各個角力間不斷沖突而漸能找到一個平衡點並回歸最初的初心。


上一篇
Five mins RPA | 8.RPA接收郵件統整
下一篇
Five mins RPA | 10.Excel Analyzer 表格分析模組
系列文
Five mins RPA | 機器人流程自動化30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言