Нужен сценарий Google Apps и пример замены сценария базы данных

У меня есть пользовательский интерфейс скрипта приложений Google, который я использую в документе Google.

Я пытаюсь заменить текущий обработчик, который использует Script DB. Сценарий БД с тех пор устарел. Количество информации, которую я писал, было минимальным, и я решил, что просто напишу информацию на листы Google.

Вот обработчик из.html

function addApprover(){
    google.script.run.withSuccessHandler(function() {          
      getApprovers();          
      $('#approver').val('');                    
    }).addApprover($("#approver").val());
  }

.gs

function addApprover(email){
  var db = ScriptDb.getMyDb();
  var docId = DocumentApp.getActiveDocument().getId();
  var ob =    {
           docId: docId,
           approverEmail: email,
           status: null, 
           emailSent: false 
          }            
  db.save(ob); 

  var history =  {
         docId: docId,
         action: 'Added Approver',
         email: email,
         date: Utilities.formatDate(new Date(), "GMT", "MM-dd-yyyy' 'HH:mm:ss"), 
        }
db.save(history);
}

Я полагаю, что я все еще вызываю функцию.gs, и мне просто нужно изменить функцию соответственно.

Я вполне уверен, что утверждающий текстовое поле содержит адреса электронной почты.

Как я могу получить доступ к этим пунктам?

Я вполне уверен, что я ищу оператор "для каждого", чтобы перебрать каждый адрес электронной почты и отправить им сообщение и записать их имя в определенную область листа, но я не уверен, как поступить.

1 ответ

Решение

Надеюсь, это поможет вам начать:

function addApprover(email){
  var docId = DocumentApp.getActiveDocument().getId();

  var ss = SpreadsheetApp.openById('Your Spreadsheet file ID here');
  var sheetToWriteTo = ss.getSheetByName('Your sheet name here');

  var rowData = [docId, email, null, false];

  sheetToWriteTo.appendRow(rowData);

  var history = [docId, 'Added Approver', email, Utilities.formatDate(new Date(), "GMT", "MM-dd-yyyy' 'HH:mm:ss")];

  sheetToWriteTo.appendRow(rowData);
}

Если вы хотите записать два набора данных на два разных листа, вам нужно получить ссылку на второй лист. Данные поступают в массив, а не в объект. Хотя вы также увидите массив, называемый объектом в документации Google. Если вы видите скобки []это массив.

Если у вас есть какие-либо проблемы, отладьте код с помощью Logger.log() операторы и / или отладка и точка останова, затем опубликуйте другой вопрос, если это серьезная проблема, или если это что-то незначительное, оставьте комментарий здесь.

Другие вопросы по тегам