我正在尝试制作一个脚本,该脚本将从带有供应商列表的电子表格创建一个表格。电子表格有超过一千个条目,所以我的脚本处理它的速度非常慢。这是代码
function SupplerAnalysis() {
//Importing data
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
//Creating a sheet
if (ss.getSheetByName("Analysis") !=null) {
//Logger.log('exists');
} else {
//Logger.log('Creating new');
ss.insertSheet("Analysis");
}
var sheetNumber = ss.getSheetByName("Analysis").getIndex() - 1;
ss.getSheetByName("Analysis").clear();
var newsheet = ss.getSheets()[sheetNumber];
var newdata = newsheet.getDataRange().getValues();
newsheet.getRange(1, 1).setValue('Suppliers');
//Get list of suppliers
for (var s = 1; s < data.length; s++) {
var supplier = data[s][3];
var z = 1;
newdata = newsheet.getDataRange().getValues();
for (var r = 1; r < newdata.length;r++) {
if (supplier === newdata[r][0]) {
z = 2;
} else { Logger.log(r);}
}
if (z === 1) {
newsheet.getRange(r+1, 1).setValue(supplier);
} else if ( z > 1 ) { Logge.log('Error');
}
}
列 data[s][3] 是不同工作的供应商列表。有上千个条目,总共约160家供应商。这个脚本执行大约需要 5 分钟,非常缓慢且无效。
如何更改代码以加快此过程?有什么方法可以将 NewCategoryFilter 的输出输入到表中?