Как именно работает служба недвижимости? - PullRequest
0 голосов
/ 12 июля 2019

Итак, что я делал ранее, когда я делал функции для их вызова, я делал переменные с одинаковым значением, равным var sheet = SpreadsheetApp.openById('id').getActiveSheet();, и кто-то предлагал / требовал, чтобы я сохранил лист как именованное свойство и продолжал вызывать это в функциях вместо создания примерно 100 одинаковых переменных с одинаковыми значениями.

Я смотрел видео на Youtube и прочее - попробовал это:

var documentProperties = PropertiesService.getDocumentProperties();
var sheetID = "1dRAXZRHMgfR_oX1ZF1RFeonUi7ZPk_wbRf7Jx0UvCjE";
documentProperties.setProperties('spreadsheetID', sheetID);
var sheet = SpreadsheetApp.openById(documentProperties.getProperty(spreadsheetID)).getActiveSheet();
var logsheet = SpreadsheetApp.openById(documentProperties.getProperty(spreadsheetID)).getSheetByName("Log");
documentProperties.setProperties('timesheet', sheet);
documentProperties.setProperties('logsheet',log);

Так что мне нужно иметь возможность вызывать лист переменных и журнал во всех других функциях - если они у меня есть в функции onOpen(), смогу ли я сделать это, просто используя documentProperties.getProperties(timesheet) или documentProperties(logsheet)?

1 Ответ

0 голосов
/ 12 июля 2019

Короткий ответ - нет, вы не можете вызывать их как функцию documentProperties(logsheet). Правильный путь - documentProperties.getProperty('logsheet').

Вы можете использовать их как глобальные переменные, но вы используете неправильные методы:

  var documentProperties = PropertiesService.getDocumentProperties();
  var spreadsheetID = '1dRAXZRHMgfR_oX1ZF1RFeonUi7ZPk_wbRf7Jx0UvCjE'
  documentProperties.setProperty('spreadsheetID', spreadsheetID);

  var sheet = SpreadsheetApp.openById(documentProperties.getProperty('spreadsheetID')).getActiveSheet();
  var logsheet = SpreadsheetApp.openById(documentProperties.getProperty('spreadsheetID')).getSheetByName("Sheet1");

  documentProperties.setProperty('timesheet', sheet);
  documentProperties.setProperty('logsheet',log);

SetProperties () , во множественном числе, установить несколько свойств:

 documentProperties.setProperties{timesheet: sheet, logsheet: log};

Имейте в виду, что Свойства не могут быть общими для скриптов , поэтому вы можете использовать их только в скриптах одного и того же проекта, но да, вы можете использовать их в функции onOpen() как любые обычные переменная. Чтобы убедиться, что вы получаете нужные значения, поставьте Logger.log(documentProperties.getProperties()) в конце кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...