Получение имени самого левого листа с помощью скриптов Google - PullRequest
0 голосов
/ 30 марта 2019

Я создаю сценарий для автоматического добавления данных на первый лист / вкладку электронной таблицы. Мне нужно сделать это через 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] для возврата имени первого листа?

1 Ответ

0 голосов
/ 31 марта 2019

Создание новой электронной таблицы и присвоение имени первому листу

Вот функция, которая создает новую электронную таблицу и присваивает ей первый лист с именем «Week:», за которым следует номер недели на основе строки формата «ww».

В настоящее время используются подсказки для получения идентификатора папки и имени таблицы. Вы, вероятно, захотите изменить это на что-то, что более точно соответствует вашим потребностям.

Не забудьте включить 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")));
    } 
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...