162_Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0

本文介绍了PowerQuery的TableXlsxCsv_2.0自定义函数,该函数能快速合并文件夹内的Excel工作簿和CSV表格。新增功能包括自定义合并特定工作表,并提供了多个示例展示如何使用。通过调整参数,用户可以选择是否包含文件名列、移除行数以及筛选特定工作表进行合并。此外,文章还分享了函数源代码链接和使用注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

162_Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0

一、背景

书接上回,在前面的文章(https://jiaopengzi.com/2602.html)中我们已经发布了一版 Power Query 快速合并文件夹中表格的自定义函数 TableXlsxCsv。我们暂且把它设置为 1.0 版本。

在之前的功能下,本次新增添一个功能:自定义合并 Workbook 中的 Worksheet

先来看下动图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VY4Lpg4w-1659501853363)(https://image.jiaopengzi.com/wp-content/uploads/2022/08/162-1.gif)]

二、示例

1、数据源

同一文件夹下,有三种不同文件格式数据源,明细如下图。

162-2

2、函数说明

相较 1.0 版,2.0版中对第三参数进行了调整,调整为可选参数 SheetNameList。

参数 SheetNameList 不填写或为 null 时,表示合并文件夹中 WorkBook 所有 WorkSheet 及 CSV 文件; 该参数不为 null 时,则过滤掉 CSV 格式文件。

其它参数相较 1.0 版保持不变,参阅:https://jiaopengzi.com/2602.html 。

162-3

3、示例1

从文件夹<订单信息>中合并所有表格,且不用文件名称添加列.

TableXlsxCsv( "订单信息", 1, 0 )

从文件夹<订单信息>中每个文件中从顶部移除 1 行后合并所有表,且不用文件名称添加列;第四至第八参数均不填写

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3iObZ3fv-1659501853364)(https://image.jiaopengzi.com/wp-content/uploads/2022/08/162-4.png)]

4、示例2

从文件夹<订单信息>中合并 WorkSheet 为张三和李四的表格,且不用文件名称添加列。

TableXlsxCsv( "订单信息", 1, 0, {"张三","李四"})

从文件夹<订单信息>中每个文件中从顶部移除 1 行后合并所有表,且不用文件名称添加列;第四至第八参数均不填写。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T09un2q7-1659501853364)(https://image.jiaopengzi.com/wp-content/uploads/2022/08/162-5.png)]

5、示例3

从文件夹<订单信息>中合并 WorkSheet 为张三的表格,使用文件名称按照规则添加列。

TableXlsxCsv( "订单信息", 1, 3, {"张三"}, "数据日期", "日期", 5, 10 )

从文件夹<订单信息>中每个文件中, sheet 名称为:张三的表中,从顶部移除 1 行并且从底部移除 3 行后合并表;当第五参数 ColunmName 填写时, 后四个参数必填,添加列的名称:数据日期,数据类型为:日期格式,按照文件名称从 5 个字符开始取 10 个字符。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eqrOPvn6-1659501853365)(https://image.jiaopengzi.com/wp-content/uploads/2022/08/162-6.png)]

6、自定函数 TableXlsxCsv_2.0

TableXlsxCsv 主函数如下,由于代码较长,请前往 https://jiaopengzi.com/2838.html 查看。

let
  fx0 = (
    FolderName               as text, 
    RemoveFirstRows          as number, 
    RemoveLastRows           as number, 
    optional SheetNameList   as list, 
    optional ColunmName      as text, 
    optional ColumnType      as text, 
    optional NameStartNumber as number, 
    optional Length          as number
  ) as table =>

三、总结

1、自定义需要筛选的 Worksheet ,但是数据依然需要有一定的结构性和通用性。

2、对于不断变换的需求,我抽象出方法来复用,但需求总是在不断变化的,有时候为了一个简单的需求需求要写很长的函数才能抽象出来,但是复制粘贴只需要两三步即可;我们需要在这样变化中寻求平衡。

3、附件中有分步的步骤,可以自由发挥。

4、一定注意,我们的必要文件夹和必要 excel 的名称请不要更改,本次调整必要的文件夹为 <00_config> 。

5、对于很多新手朋友来说,只会点击输入参数,特别提醒可以直接在编辑栏里面手动输入和修改

附件下载

https://jiaopengzi.com/2838.html

视频课

https://jiaopengzi.com/all-course

by 焦棚子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值