尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

6-13 WPS JS宏 Map实例2--拆分记录到表格

6-13 WPS JS宏 Map实例2--拆分记录到表格
📅 发布时间:2026/6/20 3:56:14

实例2--拆分记录到表格

原数据

结果:

代码:

function test(){

var pah = ThisWorkbook.Path + "//";

var arr = Range("A2", Range("E999").End(xlUp)).Value();

var titarr = ["编号", "姓名", "部门", "籍贯", "基本工资"];

var m = new Map();

for (var ar of arr) {

if (m.has(ar[2])) {
var newarr = m.get(ar[2]).concat([ar]);//concat为合并数组;如: var newarr = m.get(财政局).concat([["GH00005","孙明","财政局",38,5695]])
Console.log(JSON.stringify("1."+newarr));
//因newarr是数组不是映射所以打印不显示索引
//打印第一次运行结果:"1.编号,姓名,部门,籍贯,基本工资,GH00001,李五,财政局,18,5651,GH00005,孙明,财政局,38,5695"

m.set(ar[2], newarr);//m.set(财政局, [["编号","姓名","部门","籍贯","基本工资"],[GH00001,李五,财政局,18,5651],["GH00005","孙明","财政局",38,5695]);
Console.log(JSON.stringify("2."+[...m.entries()]));
//打印第一次运行结果:"2.财政局,编号,姓名,部门,籍贯,基本工资,GH00001,李五,财政局,18,5651,GH00005,孙明,财政局,38,5695,民政局,编号,姓名,部门,籍贯,基本工资,GH00002,王六,民政局,23,5662,卫健局,编号,姓名,部门,籍贯,基本工资,GH00003,王九,卫健局,28,5673,残联,编号,姓名,部门,籍贯,基本工资,GH00004,孙小一,残联,33,5684"

} else {
// 如果不存在,则先在 Map 中创建该部门分组,并将表头作为首行,后跟当前记录
m.set(ar[2], [titarr, ar]);// 如:m.set(财政局, [["编号","姓名","部门","籍贯","基本工资"],[GH00001,李五,财政局,18,5651]])
Console.log(JSON.stringify("3."+[...m.entries()]));
//监视窗口:m=[1];Map/object
//打印第一次运行结果:"3.财政局,编号,姓名,部门,籍贯,基本工资,GH00001,李五,财政局,18,5651"

}
}

// 创建一个新的工作簿
var wb = Workbooks.Add();

for (var [key, val] of m.entries()){ // 对 Map 进行遍历

var ws = wb.Sheets.Add(); // 每次创建一个新的工作表
ws.Name = key;//当前部门名称 key

ws.Range("A1").Resize(val.length, 5).Value2 = val;
}

// 删除新工作簿默认多余的最后一个空工作表
wb.Sheets(wb.Sheets.Count).Delete();

// 保存新工作簿到指定路径,文件名为 "拆分结果.xlsx",保存后关闭工作簿
wb.SaveAs(`${pah}拆分结果.xlsm`);
wb.Close();
}

function test(){ var pah = ThisWorkbook.Path + "//"; var arr = Range("A2", Range("E999").End(xlUp)).Value(); var titarr = ["编号", "姓名", "部门", "籍贯", "基本工资"]; var m = new Map(); for (var ar of arr) { if (m.has(ar[2])) { var newarr = m.get(ar[2]).concat([ar]);//concat为合并数组;如: var newarr = m.get(财政局).concat([["GH00005","孙明","财政局",38,5695]]) Console.log(JSON.stringify("1."+newarr)); //因newarr是数组不是映射所以打印不显示索引 //打印第一次运行结果:"1.编号,姓名,部门,籍贯,基本工资,GH00001,李五,财政局,18,5651,GH00005,孙明,财政局,38,5695" m.set(ar[2], newarr);//m.set(财政局, [["编号","姓名","部门","籍贯","基本工资"],[GH00001,李五,财政局,18,5651],["GH00005","孙明","财政局",38,5695]); Console.log(JSON.stringify("2."+[...m.entries()])); //打印第一次运行结果:"2.财政局,编号,姓名,部门,籍贯,基本工资,GH00001,李五,财政局,18,5651,GH00005,孙明,财政局,38,5695,民政局,编号,姓名,部门,籍贯,基本工资,GH00002,王六,民政局,23,5662,卫健局,编号,姓名,部门,籍贯,基本工资,GH00003,王九,卫健局,28,5673,残联,编号,姓名,部门,籍贯,基本工资,GH00004,孙小一,残联,33,5684" } else { // 如果不存在,则先在 Map 中创建该部门分组,并将表头作为首行,后跟当前记录 m.set(ar[2], [titarr, ar]);// 如:m.set(财政局, [["编号","姓名","部门","籍贯","基本工资"],[GH00001,李五,财政局,18,5651]]) Console.log(JSON.stringify("3."+[...m.entries()])); //监视窗口:m=[1];Map/object //打印第一次运行结果:"3.财政局,编号,姓名,部门,籍贯,基本工资,GH00001,李五,财政局,18,5651" } } // 创建一个新的工作簿 var wb = Workbooks.Add(); for (var [key, val] of m.entries()){ // 对 Map 进行遍历 var ws = wb.Sheets.Add(); // 每次创建一个新的工作表 ws.Name = key;//当前部门名称 key ws.Range("A1").Resize(val.length, 5).Value2 = val; } // 删除新工作簿默认多余的最后一个空工作表 wb.Sheets(wb.Sheets.Count).Delete(); // 保存新工作簿到指定路径,文件名为 "拆分结果.xlsx",保存后关闭工作簿 wb.SaveAs(`${pah}拆分结果.xlsm`); wb.Close(); }

相关新闻

  • Miniconda镜像内置pip与Conda双工具,灵活安装各类AI框架
  • Miniconda-Python3.10镜像支持生物信息学序列分析流程
  • GitHub项目克隆后如何运行?使用Miniconda-Python3.11快速还原环境

最新新闻

  • 命令行数据高效粘贴Excel:pandas与printmatrix实战指南
  • 2026茂名漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水
  • Kinetis KL27 ADC与通信接口电气特性深度解析与实战设计
  • 如何3步完成B站视频转文字:免费工具bili2text完全指南
  • 2026年叠螺污泥脱水设备厂家推荐:养殖场污粪处理/工业污泥脱水/废水回收/小型污泥处理设备供应商盘点 - 海棠依旧大
  • 2026芜湖漏水检测维修精选优质服务商TOP5推荐!卫生间漏水/厨房漏水/屋顶天花板漏水/阳台漏水/地下室漏水防水补漏检测维修-正规防水补漏公司优选口碑榜测评推荐 - 即刻修防水

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号