反馈已提交

网络繁忙

读取单Excel多Sheet文件数据

  • 文档创建者:Wendy123456
  • 历史版本:3
  • 最近更新:Wendy123456 于 2024-07-11
  • 1. 概述

    1.1 应用场景

    财务报表、销售数据表、学生成绩表等 Excel 表格中,往往包含多个 Sheet,用户希望使用 FDL 读取单 Excel 多 Sheet 文件数据。

    1.2 实现思路

    1)在待读取 Excel 文件中新增一个 Sheet 页,使用代码将所有 Sheet 页名称输出到该 Sheet 页中。

    1720686802302734.png

    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 页。如下图所示:

    1720682180252847.png

    现希望在 FDL 中读取所有 Sheet 页数据,方便后续进行数据处理。

    2.2 生成 Sheet 名索引页

    FDL 的 文件输入 算子、数据同步节点>文件输入中,支持读取某个 Sheet 页数据,且 Sheet 页名称支持使用参数。所以,我们需要将所有 Sheet 页名称输出为参数,再使用「循环容器节点+文件读取功能」,遍历读取所有 Sheet 页数据。

    1)在所有 Sheet 页最前面添加一个 Sheet 页(本文示例中,名称默认为 Sheet4),用来存放所有 Sheet 名称。如下图所示:

    1720682770213865.png

    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 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持