如何借助Power Query在WPS表格中批量导入文件名到指定列?

功能定位:为什么选 Power Query 而不是 VBA
在 WPS Spreadsheets 2026 春季版(内部构建号 12.2.0.9873)中,Power Query(官方中文名“查询与连接”)已原生集成于 Windows 桌面端,定位是“零代码 ETL”。与 VBA 相比,它把“文件夹→文件名列表”封装成可刷新连接,后期新增文件无需再跑宏,点一下“刷新”即可同步到指定列,适合日报、月报等周期性场景。
经验性观察:同等 5000 文件规模,Power Query 刷新耗时约 VBA 循环的 1/3,且不会触发 WPS 的宏安全警告,方便发给同事协作。缺点是老版本无此功能,需确认客户端版本号≥12.2。
版本与平台差异:先确认你能否看到入口
| 平台 | 最低版本 | 入口路径 | 备注 |
|---|---|---|---|
| Windows 桌面 | 12.2.0.9873 | 数据→查询与连接→新建查询→自文件夹 | 完全功能 |
| macOS | 12.1.9 | 数据→获取数据→自文件夹 | 只读,暂不支持刷新回写 |
| Android/iOS | - | 无入口 | 需回桌面端操作 |
提示:公司内网若禁止自动更新,可在“帮助→关于 WPS 表格”手动点击“检查更新”,确认构建号≥12.2 后再继续。
操作路径:把文件名批量写进指定列的 6 步
步骤 1 准备文件夹
在任意盘新建“合同扫描件”文件夹,把 2026-04 月所有 PDF 丢进去,无需改名;子目录也可,Power Query 默认递归。
步骤 2 新建查询
打开 WPS 表格→数据→查询与连接→新建查询→自文件夹→选中“合同扫描件”→确认。此时会弹出导航器,勾选“组合→合并并加载到...”。
步骤 3 选列并过滤
在导航器右侧预览区,只保留“Name”(文件名)与“Folder Path”(路径)两列,其余取消勾选;若只要 .pdf,可在文件扩展名筛选器输入“.pdf”。
步骤 4 指定写入位置
点击“加载到...→现有工作表”,选中 A2 单元格(A1 留给表头“文件名”)。勾选“将数据添加到数据模型”可后续做透视,但仅列文件名可跳过。
步骤 5 关闭并加载
点“确定”后,WPS 会在 A 列生成绿色边框的查询表,表名默认“合同扫描件”。此时 A 列即动态文件名列表。
步骤 6 后期刷新
以后新增文件,只需右键绿色区域→刷新,A 列自动追加新文件名,无需重复操作。经验性观察:1000 文件增量刷新约 2–3 秒完成。
提示:若文件名含中文空格,Power Query 默认保留,无需额外转义;后续用公式提取编号时可用 =TEXTBEFORE([@文件名],".")。
常见分支:只要文件名而不要路径
若误把“Folder Path”也加载进来,可在查询编辑器里右键“Folder Path”→删除,再点“关闭并加载”即可回退;已生成的列直接删除会触发“查询结果与数据模型不一致”警告,正确做法是回到“查询与连接”窗格→右键查询→编辑,在 Power Query 编辑器内删除列,再重新加载。
例外与取舍:什么时候不该用 Power Query
- 实时性要求<1 秒:Power Query 刷新最小粒度是秒级,高频轮询会占 CPU。
- 需要写回文件名:Power Query 是只读,不能反向重命名文件;批量改名请用 WPS 自带的“批量重命名”或 Python 脚本。
- macOS 用户:当前版本仅支持一次性加载,刷新会提示“功能受限”,需回 Windows 桌面。
故障排查:刷新报“无法找到文件夹”怎么办?
- 现象:刷新时报错“DataSource.NotFound”。
- 可能原因:原文件夹被重命名/移动;或映射盘符变更(如 U 盘拔插后盘符从 E→F)。
- 验证:在“查询与连接”窗格→右键→编辑,查看源步骤“Source”栏路径是否标红。
- 处置:点击“更改源”→重新选择新路径→关闭并加载;若需经常切换盘符,建议用“映射网络驱动器”固定盘符,或用“ subst ”命令把文件夹挂到固定虚拟盘。
与第三方协同:把文件名推送到企业微信群
经验性观察:借助“WPS 灵犀”自动化流程,可在刷新后把 A 列文件名拼接成字符串→推送到企业微信机器人。路径:灵犀→新建流程→触发器选“表格刷新完成”→操作选“发送群消息”,在内容框输入 =TEXTJOIN(",",TRUE,合同扫描件[文件名])。注意:企业微信机器人消息长度≤4096 字节,若文件名过多需截断。
适用/不适用场景清单
| 维度 | 适用 | 不适用 |
|---|---|---|
| 文件量级 | 1–10 万/文件夹 | 百万级以上(首次加载内存>8 GB 可能卡顿) |
| 更新频率 | 小时级、日级 | 秒级实时 |
| 协作权限 | 只读汇总 | 需回写改名 |
| 系统环境 | Windows 桌面 12.2+ | macOS 刷新、移动端 |
最佳实践 5 条速查表
- 统一根目录:把需汇总的文件放在同一根文件夹,避免“外部数据隐私提示”反复弹出。
- 固定盘符:用网络映射或 subst 把路径锁死,防止 U 盘盘符漂移导致刷新失败。
- 保留扩展名列:若后续需按类型筛选,加载时一并保留“Extension”列,省得再用公式截取。
- 关闭自动刷新:在“查询属性”取消“打开文件时刷新”,防止大目录拖慢启动速度。
- 备份查询:右键查询→“导出连接文件”存为 *.odc,换电脑时双击即可复用,无需重新配置。
FAQ:WPS 表格 Power Query 文件名导入
刷新后文件名重复出现?
通常是把“合并”模式错选成“追加”。在查询编辑器里把“组合”改为“合并并加载”,然后删除多余列即可。
能否只提取特定后缀?
在导航器预览区直接勾选“Extension”列,然后筛选等于“.pdf”即可,Power Query 会把筛选步骤记录成 M 代码,后续刷新仍生效。
macOS 什么时候支持刷新?
官方在社区回复“预计 2026 夏季版”上线,具体以更新日志为准;目前只能一次性加载,需回 Windows 刷新。
刷新时报内存不足?
可尝试在“查询选项”→“全局”→“最大内存”改为 4096 MB;或先按子文件夹拆分成多个查询再合并。
文件名显示乱码?
原因是系统 locale 与文件编码不一致。在 Power Query 编辑器→“开始→区域设置”把文件原始编码改为 936(简体中文 GBK)即可。
收尾:下一步行动建议
如果你每天都需要把新生成的扫描件汇总成清单,用 Power Query 是最省力的“一次性配置、长期刷新”方案。现在就打开 WPS 表格,按本文 6 步操作,把“合同扫描件”文件夹做成可刷新列表;完成后记得导出 *.odc 连接文件备份,换电脑也能 10 秒复原。若后续需要反向批量重命名,再搭配 WPS 自带的“批量重命名”或 Python 脚本即可形成完整闭环。


