iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
AI 自動化

RPA流程自動化應用系列 第 13 篇

【Day 13】把結果輸出到CSV檔上

  • 分享至 

  • xImage
  •  

在自動化專案中,許多開發者在完成爬蟲後,往往直接將結果存成 JSON 檔便宣告收工。然而,系統產生的巢狀 JSON 對工程師而言便於介接,對法務、智財分析師或高階主管來說,卻難以直接閱讀。

今天新增以下部分使得我能把結果輸出到CSV上

  • 1.新增商業報表資料管線變數
    新增宣告 csvLines 清單變數:
    在 <Sequence.Variables> 中建立了 Variable x:TypeArguments="scg:List(x:String)" Name="csvLines",用來在記憶體中逐筆累積要寫入 Excel 報表的橫列文字。

  • 2.初始化 CSV 商業欄位標頭
    在進入爬蟲迴圈前加入 InvokeMethod:
    呼叫 csvLines.Add(...),將報表的六大商業欄位標頭預先寫入清單第 1 列:
    "分流層級,專利案號,申請日期,申請人,優先權,專利摘要"

  • 3.明細資料清洗與防跑版封裝(核心關鍵)在抓取完單筆專利詳細頁資料後,新增了格式化並塞入 csvLines 的動作(InvokeMethod_1):雙引號轉義(Escaping):
    對 申請人 與 優先權 欄位加入 .Replace("""", "'"),避免資料內部自帶的雙引號破壞 CSV 結構。 多重斷行符清洗(防止 Excel 橫向錯位):
    摘要文字最常造成表格跑版,程式碼針對 抓取網頁資料 加入了:

.Replace(vbCrLf, " ").Replace(vbCr, " ").Replace(vbLf, " ")

將所有 Windows/Unix 換行字元全部壓平成空格,並在各欄位外層包裹標準雙引號 """{0}"",""{1}""...,確保一筆專利嚴格鎖定在 Excel 的單一橫列。

  • 4.不使用Office報表輸出
    流程最末端新增 WriteTextFile_5:
    不呼叫任何微軟 Excel 程式或 Interop 元件,直接使用:
<ui:WriteTextFile Encoding="65001" 
                  FileName="[&quot;D:\RPA\專利商業報表_&quot; + DateTime.Now.ToString(&quot;yyyyMMdd&quot;) + &quot;.csv&quot;]" 
                  Text="[String.Join(vbCrLf, csvLines)]" />

以 Encoding="65001"(UTF-8) 將累積的 csvLines 合併輸出成 .csv 檔案,解決了本機無 Excel 授權問題。

今日成果
執行流程後,系統產出的不再僅是機器讀取的 JSON,而是一份標準對齊的 專利商業報表_YYYYMMDD.csv


上一篇
【Day 12】歷史資料不重覆抓取與首跑限流保護
下一篇
【Day 14】 利用WEB實現動態專利情報看板
系列文
RPA流程自動化應用 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言