解析「 Email 資料擷取工具」
Regex 提取 x SQL 自動產出
面對每日海量的通知郵件,純人工作業面臨三大挑戰:
反覆的複製貼上,佔用人員處理高價值業務的寶貴時間。
眼花撩亂的數據,容易發生漏字、錯行或欄位錯置的風險。
郵件文字無法直接進入資料庫,缺乏標準化的介接橋樑。
透過自製的巨集工具,搭建從 非結構化郵件 到 結構化資料庫 的橋樑。
郵件 Email 資料擷取工具
.xlsm)只需三個簡單動作,即可完成繁瑣的資料轉換作業:
開啟附檔 Email資料擷取工具.xlsm
點選「重設貼上區」後,貼上 Email 內容
點選「開始讀取資料」,產生對應 SQL
開啟 Email資料擷取工具.xlsm
清理舊數據,匯入新資料
清除上次操作遺留的資料,避免新舊資料混雜導致 SQL 生成錯誤。此步驟是確保資料純淨度的關鍵防呆機制。
全選 郵件內文並複製,回到 Excel 中,使用符合目的格式設定貼上 (保留純文字尤佳)。
執行巨集指令:點選「開始讀取資料」
為什麼系統看得懂雜亂的信件?全靠 Regex (正規表示式)
VBScript.RegExp 物件來驅動。假設郵件內容包含:【 通知】日期:2023-10-25,代號:2330,事件:發布財報
' VBA Regex 擷取代號範例
Dim regEx As Object, matches As Object
Set regEx = CreateObject("VBScript.RegExp")
' 設定比對模式:尋找「代號:」後面的數字
regEx.Pattern = "代號:(\d+)"
regEx.Global = True
Set matches = regEx.Execute(emailContent)
If matches.Count > 0 Then
extractedCode = matches(0).SubMatches(0) ' 取得 2330
End If
將擷取到的變數 (Variables),動態組裝成標準的資料庫指令。
擷取到的變數:
vDate = '2023-10-25', vCode = '2330', vEvent = '發布財報'
-- VBA 自動生成的結果字串
INSERT INTO _watchdog_log
(notify_date, stock_code, event_type)
VALUES
('2023-10-25', '2330', '發布財報');
無需繁瑣的系統建置與權限申請,發送檔案即可上線作業。
基於同仁熟悉的 Excel 介面,降低對新系統的抗拒感。
轉換結果直接呈現於儲存格,產出 SQL 前可做最後人工覆核。
雖然目前的 .xlsm 工具已解決痛點,但下一步可以更進階:
RPA (機器人流程自動化) 整合
未來可將此 Regex 邏輯移植到後端 (如 Python) 或 RPA 腳本中,實現「信件一收到 自動解析 自動寫入 DB」的零人工介入境界。
感謝您的聆聽
開始在您的日常作業中,尋找自動化的可能性吧!