Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2022, 16:39   #1
РезедаМуратова
Пользователь
 
Регистрация: 05.12.2017
Сообщений: 69
По умолчанию GoogleSheet, проверка ячеек по двум листам

Здравствуйте, помогите пожалуйста, пытаюсь сделать проверку по ФИО, а именно если фио запроса есть в фио данных, значит справке быть, иначе вывести информацию, о том, что данного студента нет в базе, за подробной информации обратится и переадресация на почту куда вопросы кидать.
Суть: автоматизировать выдачу справок путем перехода на облака

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

Код:
function spravka() {
  var ss=SpreadsheetApp.getActive();
  var sheet=ss.getSheets()[0];
  var lastR=sheet.getLastRow();
  var num=lastR-1;
  var clientData=sheet.getRange(lastR,1,1,3).getValues();
  var data=new Date(clientData[0][0]);
  var day=data.getDate(),month=data.getMonth()+1,year=data.getFullYear();
  if (month<10){
 
    month="0"+month;
 
  }
  var realdata=day+'.'+month+'.'+year;
 
 
  // создаем квитанции по шаблону согласно списку клиентов
  let folderID = '1BoGiYV_iLS8BYHh4QRor493-jKU2DMtj'; //идентификатор папки с платежками
  let templateID = '1SuJz2beUFqXllcKGQAYH1LyMNvzS2-ZGWEbWObH--sk'; //идентификатор шаблона
  let folder = DriveApp.getFolderById(folderID); //получаем конечную папку по ее идентификатору
 
  let sheetSource = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Ответы на форму (1)"); //получаем лист с исходными данными
  let dataSource = sheetSource.getRange(2,1,sheetSource.getLastRow()-1,sheetSource.getLastColumn()).getValues(); //получаем массив значений
  let sheetBaza = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Данные"); //получаем лист с исходными данными
  let dataBaza = sheetSource.getRange(2,1,sheetSource.getLastRow()-1,sheetSource.getLastColumn()).getValues(); //получаем массив значений
  let today = new Date().toLocaleDateString("ru-RU"); //получаем текущую дату в местном формате
 
 
  // обрабатываем каждую запись поочередно и формируем конечный файл-квитанцию
  for (let i = 0; i < dataSource.length; i++) {
    let copy = DriveApp.getFileById(templateID).makeCopy(folder); //копируем шаблон в нашу папку
    let copyID = copy.getId(); //получаем идентификатор файла
    let resultFile = DocumentApp.openById(copyID); //получаем созданный файл по его идентификатору (чтобы работать с ним)
    resultFile.setName(dataSource[i][0]); //называем файл по ФИО клиента
 
 
    // производим в файле необходимые замены
    resultFile.replaceText('{orderDate}', today); //текущая дата
    resultFile.replaceText('NUMBER', num); //номер
    resultFile.replaceText('<<ФИО>>', dataSource[i][2]); //ФИО клиента
    resultFile.replaceText('<<Курс>>', dataSource[i][3]); //название товара
    resultFile.replaceText('{orderDate}', realdata); //дата заказа (в местном формате)
    resultFile.replaceText('<<Группа>>', dataSource[i][1]); //персональная скидка
   
 
    resultFile.saveAndClose(); //сохраняем изменения и закрываем файл
  sheet.getRange(lastR, 15).setValue(templateID)
 
 }}
 for (let i =0; i < sheetBaza.length; i++ ){
 
   if (dataSource[i][2] == dataBaza[i][1]){
     resultFile.replaceText('<<Формы Обучения>>', dataBaza[i][9]); //название товара
     resultFile.replaceText('<<Уровень образования>>', dataBaza[i][8]); //название товара
   }
 
 }
 
function getPdf(){
 
  var ss=SpreadsheetApp.getActive();
 
  var sheet=ss.getSheets()[0];
 
  var dataRange=sheet.getDataRange().getValues();
 
  for (var i=1;i<dataRange.length;i++){
 
    if (dataRange[i][15]==""){
 
      var filepdf=DriveApp.getFileById(dataRange[i][14]).getAs('Справки/application/pdf');
 
      GmailApp.sendEmail(dataRange[i][1], 'Справка готова', 'Смотрите вложенный файл', {
 
     attachments: [filepdf],
 
     name: 'Блог "Изучаю google script"' });
 
      sheet.getRange(i+1, 15).setValue('☑')
 
      DriveApp.getFileById(dataRange[i][15]).setTrashed(true);
 
    }
 
  }
}
РезедаМуратова вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
перенос чисел по ячейкам, проверка по всем листам книги alex241v Microsoft Office Excel 23 25.11.2015 09:21
Копирование ячеек по двум условиям iguana_blac Microsoft Office Excel 4 20.08.2013 05:45
Проверка ячеек segail Microsoft Office Excel 4 06.12.2009 21:45
Счёт ячеек по двум условиям Feniks18 Microsoft Office Excel 3 27.11.2009 13:51
Копировать данные из разных ячеек по нескольким листам в один лист Dorvir Microsoft Office Excel 2 11.06.2008 10:10