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

}

}

相关推荐
wuhen_n8 小时前
模板编译三阶段:parse-transform-generate
前端·javascript·vue.js
滕青山8 小时前
正则表达式测试 在线工具核心JS实现
前端·javascript·vue.js
不可能的是8 小时前
前端图片懒加载方案全解析
前端·javascript
wuhen_n8 小时前
Fragment 与 Portal 的特殊处理
前端·javascript·vue.js
用户5757303346249 小时前
🚀 JS事件机制大揭秘:从“橘子”报警到“列表”瘦身,前端老鸟都在偷笑的秘密!
javascript
用户5757303346249 小时前
💎 JS 中的“隐形人”:Symbol 数据类型深度解密!从命名冲突到隐私保护
javascript
掘金安东尼9 小时前
Fun with TypeScript Generics:玩转 TS 泛型
前端·javascript·面试
掘金安东尼9 小时前
Next.js 企业级落地
前端·javascript·面试
掘金安东尼9 小时前
React 性能优化完全指南 2026
前端·javascript·面试
小霖家的混江龙9 小时前
从 0 到 1 实现一个 useState
前端·javascript·react.js