在自動化專案中,許多開發者在完成爬蟲後,往往直接將結果存成 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 的單一橫列。
<ui:WriteTextFile Encoding="65001"
FileName="["D:\RPA\專利商業報表_" + DateTime.Now.ToString("yyyyMMdd") + ".csv"]"
Text="[String.Join(vbCrLf, csvLines)]" />
以 Encoding="65001"(UTF-8) 將累積的 csvLines 合併輸出成 .csv 檔案,解決了本機無 Excel 授權問題。
今日成果
執行流程後,系統產出的不再僅是機器讀取的 JSON,而是一份標準對齊的 專利商業報表_YYYYMMDD.csv