Javascript 如果getSheetByName为null,则返回占位符数据
我目前有一个脚本,可以从多个具有特定名称的工作表中复制数据,然后将其合并到主工作表中 我试图弄清楚当工作表没有特定名称时该怎么办。到目前为止,我有一个if语句,它只会返回它在电子表格中找到的第一张表。理想情况下,我希望返回一个值为“name not found”的单行 我不熟悉谷歌脚本或电子表格,所以请告诉我任何有帮助的文档Javascript 如果getSheetByName为null,则返回占位符数据,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,我目前有一个脚本,可以从多个具有特定名称的工作表中复制数据,然后将其合并到主工作表中 我试图弄清楚当工作表没有特定名称时该怎么办。到目前为止,我有一个if语句,它只会返回它在电子表格中找到的第一张表。理想情况下,我希望返回一个值为“name not found”的单行 我不熟悉谷歌脚本或电子表格,所以请告诉我任何有帮助的文档 function populateMasterTracker() { var trackerFolder = DriveApp.getFolderById("id");
function populateMasterTracker() {
var trackerFolder = DriveApp.getFolderById("id");
var trackerFiles = trackerFolder.getFiles();
var combinedData = [];
var data;
//loop through files
while(trackerFiles.hasNext()){
var file = trackerFiles.next();
//object for each file
var fileObject = {
name: file.getName(),
id: file.getId()
}
data = getDataFromSheet(fileObject.id,fileObject.name);
combinedData = combinedData.concat(data);
}
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Master');
ss.getRange(2,1,combinedData.length,8).setValues(combinedData);
}
function getDataFromSheet(id,name){
var personalSheet = SpreadsheetApp.openById(id);
var ss = personalSheet.getSheetByName('QC');
if(!ss){
//if qc not found
Logger.log(name+ " not found")
ss = personalSheet.getSheets()[0];
}
var lastFilledRow = getLastPopulatedRow(ss.getRange('A:F').getValues());
var range = ss.getRange('A2:H'+lastFilledRow);
var data = range.getValues();
Logger.log(data)
return data
}
像这样的怎么样:
function getDataFromSheet(id,name){
var personalSheet = SpreadsheetApp.openById(id);
var ss = personalSheet.getSheetByName('QC');
if(!ss){
return [[Utilities.formatString('FileName: %s ID: %s Has no sheet named %s',name,id,'QC')]]; //You may need to add 7 null columns so that all the data will be the same width.
}else{
var lastFilledRow = getLastPopulatedRow(ss.getRange('A:F').getValues());
var range = ss.getRange('A2:H'+lastFilledRow);
var data = range.getValues();
return data
}
}
如果无法从电子表格中复制所需的数据,您需要什么。我们无法回答设计问题。这完全取决于你想要什么。我可能只是在母版中记下,该id没有工作表名称
QC
@Cooper如果我不清楚,很抱歉。当找不到ID时,我希望粘贴一行,其中包含找不到的文件名。问题是我不知道如何在脚本中创建这一行,我想我必须动态更改getRange方法,因为这不适合我当前使用的(2,1,length 8)参数。