我正在创建一个脚本,以自动将数据添加到电子表格的第一张工作表/标签中。我需要通过script.google.com进行此操作,因为有各种电子表格,并且我希望将此代码保存在一个脚本中。另外,第一个标签的名称每周都会更改。
如果我知道工作表名称的使用范围,则可以将数据添加到单元格:“ Sheet1!A2”。但是,我想在不知道“ Sheet1”的情况下执行此操作。类似于newestSheet +“!A2”。
function myFunction(){
updateGoogleSheet("My Sheet ID");
}
function updateGoogleSheet(spreadsheetId) {
var newestSheet = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getName();
var data = [
{
range: newestSheet+"!A2", // Update single cell
values: [
["2"]
]
},
];
var resource = {
valueInputOption: "USER_ENTERED",
data: data
};
Sheets.Spreadsheets.Values.batchUpdate(resource, spreadsheetId);
}
SpreadsheetApp无法与script.google.com一起使用。除了“ getSheets()[0]”之外,还可以返回第一张工作表的名称吗?
答案 0 :(得分:0)
这是一个创建新电子表格并用“周:”命名第一张工作表的函数,其后是基于格式字符串“ ww”的星期数。
当前,它使用提示获取文件夹ID和电子表格名称。您可能希望将其更改为更精确地适合您的需求。
请不要忘记启用Drive API V2。
function createSpreadsheetInFolder(){
var ss=SpreadsheetApp.getActive();
var ui=SpreadsheetApp.getUi();
var resp1=ui.prompt('Parent Folder Id','Enter Parent Folder Id', ui.ButtonSet.OK_CANCEL);
if(resp1.getSelectedButton()==ui.Button.OK && resp1.getResponseText()){
var parentFolderId=resp1.getResponseText();
var pfObj=Drive.Files.get(parentFolderId);
var pfName=pfObj.title;
var pfType=pfObj.mimeType;
var pfId=pfObj.id;
var resp2=ui.prompt('File Name', 'Enter File Name', ui.ButtonSet.OK_CANCEL);
if(resp2.getSelectedButton()==ui.Button.OK && resp2.getResponseText()){
var fileName=resp2.getResponseText();
var res={
"mimeType":"application/vnd.google-apps.spreadsheet" ,
"title":fileName,
"ownedByMe": true,
"parents":[{"id":parentFolderId}]
};
try{
var file=Drive.Files.insert(res);
}
catch(e){
ui.alert(e);
}
var ss=SpreadsheetApp.openById(file.id);
var sh=ss.getSheets()[0].setName(Utilities.formatString('Week: %s', Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "ww")));
}
}
}