У меня есть вопрос относительно Google App Script
Ниже приведен код, который я пробовал ...
@ Tanaike помог мне с приведенным ниже кодом, но теперь проблема состоит в том, чтобы поставить 3 измерения
function SpreadbyStoreName() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var values = sheet.getDataRange().getValues();
// remove header row values from array
values.shift();
// data structure
var ds = {};
values.forEach(function(row) {
var storename= row[0]; // 1st col
var fruits = row[1]; // 2nd col
var notformatteddate = row[2]; // 3rd col
var startdate = Utilities.formatDate(new Date(notformatteddate), "GMT+1", "MM/dd/yyyy")
ds[storename] = ds[storename] || {}; // vendor
ds[storename][fruits] = ds[storename][fruits] || {};
ds[storename][fruits][startdate] = ds[storename][fruits][startdate] || [];
ds[storename][fruits][startdate] = [parseInt(row[3]), parseInt(row[4])];
});
var rs = {};
Object.keys(ds).forEach(function(s) {
rs[s] = rs[s] || [];
Object.keys(ds[s]).forEach(function(f) {
rs[s][f] = rs[s][f] || [];
Object.keys(ds[s]).forEach(function(sd) {
if(ds[s][f][sd]) {
rs[s][f].push([sd, ds[s][f][sd][0], ds[s][f][sd][1]]);
}else{
rs[s][f].push([s, 0, 0]);
}
})
})
})
Logger.log(rs)
Object.keys(ds).forEach(function(v) {
var headers = [[s, 'Fruits'].join(' '), 'NumberSold', 'UniqueSold'];
ds[s].unshift(headers);
try {
ss.insertSheet(headers[0]);
} catch (e) {}
var sh = ss.getSheetByName(headers[0]);
sh.clear();
sh.getRange(1, 1, ds[s].length, 3).setValues(ds[s]);
})
}
По сути, целью вышеприведенного кода является получение [название магазина, фрукты, дата создания, количество проданных, уникальные продажи] и разделение данных по столбцу «Название магазина» на отдельную вкладку в Google Sheet.
Используя приведенный выше код, я не могу получить правильный формат объекта, который можно использовать
https://docs.google.com/spreadsheets/d/171S9c079hHBgqgsouZPb09k220HEFTF13y2bB187-N8/edit?usp=sharing
Выше приведена ссылка на пример данных