7-10 WPS JS宏 对象使用实例7--拆分单表到多工作簿下的多表

7-10 WPS JS宏 对象使用 实例7--拆分单表到多工作簿下的多表

原数据:

结果:

代码:

function test(){

var arr=Range("a2:e"+Range("a9999").End(xlUp).Row).Value();

var obj={},pah=ThisWorkbook.Path;

var tit=["省份","产品","月份","销售数量","销售金额"];

for (var ar of arr){

if(ar[0] in obj){

if(ar[1]in obj[ar[0]]){

obj[ar[0]][ar[1]].push(ar);

}else{

obj[ar[0]][ar[1]]=[ar];

}

}else{

obj[ar[0]]={[ar[1]]:[ar]};

}}

for(var [key,val]of Object.entries(obj)){

var wb=Workbooks.Add();

for(var [k,a] of Object.entries(val)){

var ws=wb.Sheets.Add();

ws.Name=k;

Console.log(JSON.stringify(a))

ws.Range("a1").Resize(a.length+1,5).Value2=[tit].concat(a);

// ws.Range("a1").Resize(a.length,12).Value2=a);

}

wb.Sheets("sheet1").Delete();

try {

// 创建单层文件夹(完整路径)

MkDir(pah+"\\分发结果");

Console.log("创建成功");

} catch (error) {

Console.log("有此目录,继续");

}

wb.SaveAs(pah+`\\分发结果\\`+key+`.xlsx`);

wb.Close();

}

}

相关推荐
xiaoxue..37 分钟前
合并两个升序链表 与 合并k个升序链表
java·javascript·数据结构·链表·面试
要加油哦~1 小时前
AI | 实践教程 - ScreenCoder | 多agents前端代码生成
前端·javascript·人工智能
一个public的class1 小时前
你在浏览器输入一个网址,到底发生了什么?
java·开发语言·javascript
青茶3601 小时前
php怎么实现订单接口状态轮询请求
前端·javascript·php
火车叼位2 小时前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
VT.馒头2 小时前
【力扣】2727. 判断对象是否为空
javascript·数据结构·算法·leetcode·职场和发展
鱼毓屿御2 小时前
如何给用户添加权限
前端·javascript·vue.js
JustHappy2 小时前
「web extensions🛠️」有关浏览器扩展,开发前你需要知道一些......
前端·javascript·开源
xixixin_2 小时前
【JavaScript 】从 || 到??:JavaScript 空值处理的最佳实践升级
开发语言·javascript·ecmascript
belldeep3 小时前
python:用 Flask 3 , mistune 2 和 mermaid.min.js 10.9 来实现 Markdown 中 mermaid 图表的渲染
javascript·python·flask