跳至主要內容

04 · 每個群組產出一個檔案

情境

你已經有續約報表,但希望按地區拆成多個 .xlsx,而不是一個大檔案。操作員可以把各地區的檔案直接交給該地區的團隊。

__config__

source_sheet原始
source_table1
output_file_pattern{{ [地區] }}.xlsx

群組鍵就是你在 output_file_pattern 裡參照的內容。xl3 會用解析後的 pattern 值對來源列分組,每個不同值就產出一個檔案。

原始資料(工作表 原始

客戶地區續約金額
台灣物流台北18400
高雄貝塔高雄7200
核心食品台北25100

結果

兩個檔案:

  • 台北.xlsx — 包含台灣物流與核心食品的列。
  • 高雄.xlsx — 包含高雄貝塔。

多鍵檔案分組

output_file_pattern = {{ [地區] }}-{{ [等級] }}.xlsx

群組鍵變成 (地區, 等級) 元組。不同的元組 → 不同的檔案。台北-A.xlsx台北-B.xlsx高雄-A.xlsx …。

檔名清洗規則

xl3 依 ADR-0002 清洗檔名:禁用字元 / \ : * ? " < > |(外加控制字元)每個都以 _ 一對一替換,接著清掉開頭的空白與結尾的點、空白。連續的 _ 不會合併。如果兩個不同的群組值清洗後落到同一個檔名 — 例如 台北/台灣台北:台灣 都變成 台北_台灣.xlsx(每個禁用字元各換成一個 _) — xl3 會依 ADR-0031 丟 xl3/filename/collision,而非默默覆蓋。

空白群組鍵

如果某列在群組鍵欄位為空,xl3 會依 Excel 樞紐分析表的慣例(ADR-0026)替換為字面值 (blank)。該檔案會落到 (blank).xlsx

備註

  • 檔案順序為「首次出現」(ADR-0016) — 也就是該列在來源中出現的順序。
  • 若想按地區拆成同一份檔案中的多個工作表,請看 食譜 05