Мой первый раз при написании сценариев я пытаюсь создать лист заказов для внешних торговых представителей, который они могут заполнить, и нажимает кнопку, чтобы отправить файл шаблона.Листы 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]});
}