Попытка удалить именованные внешние листы из скрипта контейнера - PullRequest
0 голосов
/ 11 декабря 2018

Мой первый раз при написании сценариев я пытаюсь создать лист заказов для внешних торговых представителей, который они могут заполнить, и нажимает кнопку, чтобы отправить файл шаблона.Листы 0 и 1 являются вопросами опроса, которые заполняют ссылки на листе 2 (Конечный продукт).Листы 3 и 4 являются полями проверки данных для листов 0 и 1, включая адреса электронной почты для получателей.

Я пытаюсь скопировать электронную таблицу в новую электронную таблицу, -> преобразовав конкретный лист из копии в текст, чтобы я мог удалить все листы, кроме преобразованного листа, и не получить ошибки ссылки -> электронная почтапреобразовал лист в формате pdf в контакты на листе 3. Мой код делает все, кроме удаления 4 листов, которые я хочу (0,1,3,4).Скрипт является контейнерным скриптом, поэтому всякий раз, когда я пытаюсь вызвать SpreadsheetApp.getActiveSpreadsheet();, он автоматически захватывает файл контейнера и удаляет листы «шаблона».Мне нужно знать, как удалить индексы 0,1,3,4 внешней таблицы в другой папке на моем диске.Код ниже является сборкой фрагментов, которые я вырезал и сложил вместе.Я надеюсь, что вы можете понять все это.

Вот что у меня есть:

function SubmitOnClicks() {
  // Set the Active Spreadsheet so we don't forget
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var orderSheet = ss.getSheetByName("Order Sheet");
  var ValidationRef = ss.getSheetByName("Validation References");
  orderSheet.activate();

  // Set the message to attach to the email.
  var message = "Please see attached";
  
  // Get Project Name from Range B3:D3
  var projectname = ss.getRange("B3").getValues();
  // Get BFS Size from Range C25:E25
  var size = ss.getRange("C25:E25").getValues();
  // Construct the Subject Line
  var subject = projectname + " " + size;
  
  // Get contact details from "Validation References" sheet and construct To: Field
  var numRows = ValidationRef.getLastRow();
  var emailTo = ValidationRef.getRange(2, 12, 5, 2).getValues();
  
  // Google scripts can't export just one Sheet that I know of
  var submittalDate = orderSheet.getRange(17, 2).getValues();
  var submittalName = "BFS Submittal"
  var folderID = "My Drive Folder ID"; // Folder id to save Copy to: MyDrive/_Sheets/Shared/BFS Exports
  var folder = DriveApp.getFolderById(folderID);
  var sourceSheet = ss.getSheetByName("Order Sheet");
  var sourceRange = sourceSheet.getRange(1,1,sourceSheet.getMaxRows(),sourceSheet.getMaxColumns());
  var sourcevalues = sourceRange.getValues();
  var destSpreadsheet = SpreadsheetApp.open(DriveApp.getFileById(ss.getId()).makeCopy(submittalName, folder))
  var destSheet = destSpreadsheet.getSheets()[2];
  var destRange = destSheet.getRange(1, 1, destSheet.getMaxRows(), destSheet.getMaxColumns());
  
  // Replace cell values with text (to avoid broken references)
  destRange.setValues(sourcevalues);
  
  var files = DriveApp.searchFiles(
    'mimeType = "BFS Submittal' + MimeType.GOOGLE_SHEETS + '"');
  while (files.hasNext()) {
  var spreadsheet = SpreadsheetApp.open(files.next()); //I'm stuck after this Line
  var sheet = spreadsheet.getSheets()[0, 1, 3, 4]; 
  
        
  }
    
  // Make the PDF, currently called "BFS Submittal.pdf"
  var pdf = DriveApp.getFileById(ss.getId()).getAs('application/pdf').getBytes();
  var attach = {fileName:'BFS Submittal',content:pdf, mimeType:'application/pdf'};
  
  // Send the freshly constructed email 
  MailApp.sendEmail(emailTo, subject, message, {attachments:[attach]});
 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...