讀取單Excel多Sheet檔案資料

  • 文檔創建者:Wendy123456
  • 編輯次數:4
  • 最近更新:Nikozhan 于 2025-06-27
  • 1. 概述

    1.1 應用場景

    財務報表、銷售資料表、學生成績表等 Excel 表格中,往往包含多個 Sheet,使用者希望使用 FDL 讀取單 Excel 多 Sheet 檔案資料。

    1.2 實現思路

    1)在待讀取 Excel 檔案中新增一個 Sheet 頁,使用程式碼將所有 Sheet 頁名稱匯出到該 Sheet 頁中。

    2)使用「參數指派」算子,將 Sheet 頁名稱匯出為參數(上圖中的 Sheet4 頁中,第一欄資料不作為參數匯出,只將包含業務資料的 Sheet 頁名稱匯出為參數)。

    3)使用循環容器節點+資料同步節點:遍歷所有 Sheet 頁名稱參數,讀取所有 Sheet 頁資料。

    1.3 任務展示

    FineDataLink 中的資料處理程式,詳情參見:https://demo.finedatalink.com/ 「讀取單Excel多sheet檔案資料」。

    1.4 注意事項

    需要滿足條件:

    • Excel 檔案的所有 Sheet 頁的欄位名,需要相同。

    • Excel 需要支援滿足的版本為 97~ 最新版本。

    2. 操作步驟

    2.1 場景模擬

    範例資料:

    銷售表.xlsx

    ,範例資料為銷售資料表,包含三個 Sheet 頁。如下圖所示:

    現希望在 FDL 中讀取所有 Sheet 頁資料,方便後續進行資料處理。

    2.2 生成 Sheet 名索引頁

    FDL 的 檔案輸入 算子、資料同步節點>檔案輸入中,支援讀取某個 Sheet 頁資料,且 Sheet 頁名稱支援使用參數。所以,我們需要將所有 Sheet 頁名稱匯出為參數,再使用「循環容器節點+檔案讀取功能」,遍歷讀取所有 Sheet 頁資料。

    1)在所有 Sheet 頁最前面新增一個 Sheet 頁(本文範例中,名稱預設為 Sheet4),用來存放所有 Sheet 名稱。如下圖所示:

    2)點選「開發工具>查看程式碼」,輸入程式碼並運作程式碼,將所有 Sheet 頁名稱匯出到 Sheet4 中。如下圖所示:

    注:使用者操作時,將程式碼第三行的 Sheet4 修改為實際新增的 Sheet 頁名稱。

    function 批量獲取工作表名稱(){

    let i=1 //定義變數i,用於指定存放工作表名稱的行號,從第1行開始

    let tsh=Sheets.Item('Sheet4') //將“Sheet4”工作表定義為tsh

    for(let sh of Sheets){ //遍歷工作表

    tsh.Cells.Item(i,1).Value2=sh.Name //將工作表名稱寫入“Sheet4”工作表的A列

    i++ //每循環一次,行號加1,這樣就不會改寫已經寫入的內容

    }

    }

    6.png

    3)運作後,Sheet4 介面如下圖所示:

    1720683460427480.png

    4)儲存表格內容。

    2.3 將 Sheet 頁名稱匯出為參數

    需要讀取銷售表資料的Sheet4資料,將 Sheet 名稱匯出為參數,便於後續步驟中讀取所有 Sheet 頁資料。

    2.3.1 讀取檔案資料前準備

    需要 配置伺服器本地目錄資料連結 OR 配置FTP/SFTP資料連結,讀取 Excel 檔案資料。

    本文範例中,將銷售表資料放在FTP/SFTP 伺服器上,所以配置了 配置FTP/SFTP資料連結

    2.3.2 Sheet 頁名稱匯出為參數

    1)FDL 中,建立定時任務,拖入參數指派節點,讀取銷售表」的 Sheet4 頁資料,將  Sheet 頁名稱匯出為參數。如下圖所示:

    設定從 Sheet4 的第一欄讀取資料,且第一欄作為欄位名,即第一欄資料不作為參數匯出(第一欄的值為 Sheet4,Sheet4 中並沒有實際業務資料,所以後續步驟中不讀取該 Sheet 頁資料)。

    8.png

    點選資料預覽,如下圖所示:

    1720684804330917.png

    2)點選匯出參數Tab頁,將第一欄所有行資料匯出為參數,參數名稱為 name;建議在除錯值中設定一個參數預設值,便於後續節點引用參數後查看效果,除錯值並不參與實際運作。如下圖所示:

    10.png

    2.4 設定循環容器節點

    由於待讀取的 Sheet 頁為多個,而讀取檔案資料時每次只能讀取一個 Sheet 頁資料,所以需要使用循環容器節點,遍歷所有 Sheet 頁參數。

    拖入一個循環容器節點,循環方式選擇遍歷循環,遍歷物件勾選參數name。如下圖所示:

    1720685112169502.png

    2.5 讀取 Sheet 頁資料

    本文範例中,只展示如何讀取單 Excel 多 Sheet 頁資料,資料讀取後並不做處理,所以使用「資料同步-檔案輸入」功能讀取 Excel 資料。

    若使用者實際場景中,需要對讀取的資料進行資料,建議循環容器節點中拖入資料轉換節點,使用檔案輸入算子讀取資料,再使用其他算子對資料進行處理。

    1)循環容器節點中拖入資料同步節點,Sheet 名處引用參數 name 讀取 Sheet 頁資料。如下圖所示:

    12.png

    點選資料預覽,可查看讀取的資料。如下圖所示:

    1720685728865820.png

    2)資料去向與映射Tab 中,將資料匯出到目標表中。如下圖所示:

    14.png

    3)寫入方式選擇追加寫入資料即可。

    2.6 效果查看

    1)任務運作成功後,介面如下圖所示:

    15.png

    2)目標表資料如下圖所示:

    1720686012126760.png

    2.7 內容擴展

    1)可點選「發佈」按鈕將任務發佈到 生产模式 中。如下圖所示:

    17.png

    2)不同場景中讀取檔案資料範例:應用範例




    附件列表


    主題: 資料開發-定時任務
    已經是第一篇
    已經是最後一篇
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!