批量处理

怎么在WPS里自动拆分多工作簿并提取指定列数据?

WPS官方团队
批量提取自动化数据拆分列操作脚本
WPS如何批量提取指定列, WPS表格自动拆分工作簿, 批量提取列生成新文件, WPS宏提取列数据, WPS JSO宏循环遍历工作表, 批量操作出现空值怎么办, WPS是否支持定时任务提取列, 提取列后格式错位怎么修复

功能定位:为什么“自动拆分”成了 2026 年运营刚需

WPS 12.9 把「多维表」推到首页后,官方直接用 Python 脚本列替掉了传统 ET 宏。对每天从 ERP 倒出几十个工作簿、再按区域拆表的电商运营来说,怎么在 WPS 里自动拆分多工作簿并提取指定列 已从“进阶技巧”升级为“生存技能”。过去用 VBA 得先装虚拟机,如今内核级沙盒内置 Python,环境零部署,也再不会被宏病毒提示打断流程。

不过入口藏得深:只有多维表才开放脚本列,传统 .et 文件无法直接调用。因此先判断格式,再决定走「脚本列」还是退回「Power Query+复制粘贴」。下文给出 30 秒决策树,随后分别演示两条路线的最短路径与副作用。

功能定位:为什么“自动拆分”成了 2026 年运营刚需
功能定位:为什么“自动拆分”成了 2026 年运营刚需

决策树:30 秒选对路线

  1. 源文件是 .xls/.xlsx/.csv 且总量<50 个?→ 走 A 路线:多维表 Python 脚本列(全自动)。
  2. 源文件是 .et 或公司电脑禁用 Python?→ 走 B 路线:Power Query+手动另存(半自动)。
  3. 需要把结果回存为 .et90 兼容格式供旧版同事查看?→ 最后一步必须「另存为」兼容模式,否则旧版打不开。

经验性观察:100 万行以内,脚本列与 Power Query 速度接近;超过 300 万行,Python 流式写入优势才会显现,但内存也会冲到 2 GB 以上,8 GB 以下机型慎选。

A 路线:多维表 Python 脚本列全自动拆分

Step 1 新建多维表

Windows:启动 WPS Office → 首页 → 新建 → 多维表 → 空白多维表。
macOS:左上角「文件」→ 新建 → 多维表 → 空白。若首页无「多维表」,说明版本低于 12.9,先升级。

Step 2 一键导入文件夹

数据 → 获取数据 → 从文件夹 → 选中含工作簿的文件夹 → 合并并加载 → 选「示例工作表」→ 确定。多维表会把所有工作簿的指定工作表纵向追加成一张总表,数十秒可完成(视设备而定)。

Step 3 添加 Python 脚本列

表头右侧「+」→ 脚本列 → 语言选 Python → 在代码区粘贴以下模板(仅保留所需列):

import pandas as pd
def split_and_extract(df):
    # df 为当前分块,系统自动注入
    keep_cols = ['订单号', '省份', '销售额']  # 按实际修改
    return df[keep_cols].drop_duplicates()
result = split_and_extract(df)

点击「运行」→ 若提示「SSL: CERTIFICATE_VERIFY_FAILED」,在脚本顶部加两行:

import ssl
ssl._create_default_https_context = ssl._create_unverified_context

保存后,系统会为每行数据生成一个仅含指定列的新子表,并自动命名为「脚本列_输出」。

Step 4 按「省份」拆工作簿

在脚本列右侧再新建「拆分键」列,类型选「公式」,输入 =[省份]。接着数据 → 输出 → 按列拆工作簿 → 选「拆分键」→ 输出格式选 .xlsx → 确定。WPS 会在原文件夹下新建「拆分结果」子目录,每个省份一个文件,仅含之前 Python 提取的三列。

Step 5 回退兼容(可选)

若下游同事仍在用 WPS 2019,需把结果再另存为 .et90:文件 → 另存为 → 选择「WPS 表格 9.0 兼容格式(.et90)」。此操作会丢弃脚本列与多维表特性,文件体积增大 15% 左右。

提示

Python 脚本列依赖本地沙盒,断网也能跑;但首次运行会后台下载依赖包(约 38 MB),公司内网若屏蔽外网,请提前让 IT 放行 https://pypi.tuna.tsinghua.edu.cn

B 路线:Power Query 半自动方案

当源文件是 .et 或管理员关闭 Python 权限时,可用 Power Query 完成「提取列」+「手动拆分」。路径:数据 → 获取数据 → 从文件夹 → 合并后加载到 Power Query 编辑器 → 在编辑器里删除不需要的列 → 关闭并加载到新建工作表。接着用「数据透视表」或「筛选+复制工作表」完成按省份拆分,最后另存为独立工作簿。

经验性观察:Power Query 在 50 个文件以内体验流畅;文件数过百,编辑器预览会明显卡顿,建议分批处理,每批不超过 30 个文件。

B 路线:Power Query 半自动方案
B 路线:Power Query 半自动方案

平台差异与最短入口对照表

功能Windows 12.9.0macOS 12.9.1Android/iOS
新建多维表首页→新建→多维表文件→新建→多维表暂不支持
Python 脚本列表头+→脚本列同上暂不支持
按列拆工作簿数据→输出→按列拆同上暂不支持

常见失败分支与回退

  • 现象:点击脚本列报「Python 环境初始化失败」。原因:公司组策略禁用沙盒。处置:退回 B 路线,或用 WPS 政企版申请管理员在后台把「允许 Python 脚本」开关打开。
  • 现象:拆分后发现金额列丢失小数。原因:Python 默认读大数字为 int。处置:在脚本里显式指定 dtype,如 df['销售额'] = pd.to_numeric(df['销售额'], errors='coerce')
  • 现象:回存 .et90 后公式失效。原因:兼容格式不支持动态数组。处置:在拆分前把公式列「复制→粘贴为值」。

验证与观测方法

1. 文件数校验:在输出文件夹空白处 Shift+右键 → 打开 PowerShell → 输入 ls *.xlsx | measure 看对象计数,应与省份唯一值数量一致。
2. 列数校验:随机打开两个结果文件,看列名是否与 Python 脚本 keep_cols 完全一致。
3. 数据量校验:总表行数应等于各子表行数之和,可用多维表右下角的「总行数」与 Windows 资源管理器「详细信息」→「行数」对比。

适用/不适用场景清单

适用:日更 30~200 个工作簿、列结构一致、需按固定键(省份/门店/渠道)拆分,且下游允许 .xlsx 格式。
不适用:源文件含机密个人信息需落地国密加密(Python 沙盒暂未通过 SM9 认证);或公司要求必须输出 .et 且禁用 Python;或文件数过万(经验性观察,脚本列初始化耗时将超过 10 分钟,性价比低)。

最佳实践 6 条

  1. 统一关闭源文件的「打开密码」,否则批量导入会弹窗中断。
  2. 拆分键尽量用文本型代码而非合并单元格,避免空值导致 KeyError。
  3. 在脚本里加 try except 捕获异常,并把错误行写入日志列,方便事后补录。
  4. 输出目录不要选系统盘根目录,Windows 权限限制可能导致「另存为」失败。
  5. 若结果需上传 ERP,优先输出 .csv,编码选 UTF-8 with BOM,防止中文乱码。
  6. 把 keep_cols 写成配置表放在多维表前端,未来字段变动只需改表无需改代码。

FAQ(必须使用 FAQPage Schema)

拆分后文件命名能否自定义?

可以。在「按列拆工作簿」弹窗里,把「文件名模板」从默认 {键值}.xlsx 改为 区域_{键值}_2026Q2.xlsx,系统会自动替换占位符。

macOS 升级后闪退无法进入多维表?

官方确认旧插件 Wfonts 冲突。关机后长按 Shift 开机进入安全模式,把 /Library/Application Support/WPS/PlugIns/Wfonts.plugin 移到废纸篓,重启即可。

Python 脚本列能否调用内网数据库?

可以,但需管理员在「管理中心→安全策略」把「允许外部数据源」打开,并导入公司根证书;否则会出现 SSL 验证失败。

结果文件太大,邮箱发不出怎么办?

多维表输出时勾选「压缩图片」并把「精度」降到 150 dpi,可把体积缩小约 40%;或改用 .csv 格式,再分卷压缩。

收尾:下一步行动清单

读完本文,你已清楚「多维表 Python 列」与「Power Query」两条路线的准入条件、性能拐点与回退方案。建议先用 10 个测试文件跑通,记录耗时与内存,再决定是否推广到全量日报。若公司禁用 Python,可立即改用 B 路线,无需等待 IT 审批。最后,把 keep_cols 与命名模板写进内部规范,减少同事踩坑。

现在就打开 WPS,新建空白多维表,按 A 路线跑一遍示例脚本,亲手验证拆分结果是否与源表行数对齐——只有跑通自己的数据,你才能在下周的月度汇报里自信地说:“拆分+提取,全程 3 分钟,零手工复制。”

相关关键词

WPS如何批量提取指定列WPS表格自动拆分工作簿批量提取列生成新文件WPS宏提取列数据WPS JSO宏循环遍历工作表批量操作出现空值怎么办WPS是否支持定时任务提取列提取列后格式错位怎么修复