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();

}

}

相关推荐
bearpping3 分钟前
Nginx 配置:alias 和 root 的区别
前端·javascript·nginx
@大迁世界25 分钟前
07.React 中的 createRoot 方法是什么?它具体如何运作?
前端·javascript·react.js·前端框架·ecmascript
颜酱2 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
大黄说说2 小时前
筑牢Web安全防线:全面解析SQL注入与XSS攻击防护
restful
霍理迪2 小时前
Vue的响应式和生命周期
前端·javascript·vue.js
竹林8185 小时前
在Web3前端用Node.js子进程批量校验钱包,我踩了这些性能与安全的坑
javascript·node.js
Kel7 小时前
深入剖析 openai-node 源码:一个工业级 TypeScript SDK 的架构之美
javascript·人工智能·架构
SuperEugene8 小时前
Vue3 模板语法规范实战:v-if/v-for 不混用 + 表达式精简,避坑指南|Vue 组件与模板规范篇
开发语言·前端·javascript·vue.js·前端框架
Luna-player8 小时前
Vue 3 + Vue Router 的路由配置,简单示例
前端·javascript·vue.js