7-10WPS 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();
}
}