Я создаю шаблон для создания тестовых случаев в Google Drive.Используя Google Documentation и Stackoverflow, я создал приведенный ниже код, чтобы сохранить шаблон в новом документе.
// The onOpen function is executed automatically every time a Spreadsheet is loaded
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
menuEntries.push({name: "Save Test Case", functionName: "saveTestCase"});
ss.addMenu("Test Case Menu", menuEntries);
}
// The code below makes a duplicate of the active sheet
function saveTestCase() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var name = sheet.getRange("Test Case Template!B3:G3").getValue();
var destFolder = DriveApp.getFolderById("xxxxxx");
DriveApp.getFileById(sheet.getId()).makeCopy(name, destFolder);
}
Я создал пользовательский пункт меню с сохранением шаблона.Сохранение создает новый документ в заданной папке.Пока все хорошо.Но в том же действии я пытаюсь переименовать новый документ.Поэтому я установил диапазон, потому что имя должно быть над несколькими полями.И эта часть не работает.Вместо получения значений B3: G3 он получает только значение B3.
У кого-нибудь есть идея, если это возможно, и как я могу это исправить?
Самым идеальным для меня было бы то, что значение B3: G3 в этой картинке превращается в название документа "TC-001 Это тестовый пример".
РЕДАКТИРОВАТЬ:
С решением Amit код для имени выглядит следующим образом:
// The code below makes a duplicate of the active sheet
function saveTestCase() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var name = sheet.getRange("Test Case Template!B3:G3").getValues().join(" ");
var destFolder = DriveApp.getFolderById("xxxxxx");
DriveApp.getFileById(sheet.getId()).makeCopy(name, destFolder);
}
Это действительно решает мою первую проблему.Результатом, однако, является имя, разделенное запятыми.Поэтому я изменил это на это сейчас:
// The code below makes a duplicate of the active sheet
function saveTestCase() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var nameA = sheet.getRange("Test Case Template!B3").getValue();
var nameB = sheet.getRange("Test Case Template!C3").getValue();
var nameC = sheet.getRange("Test Case Template!D3").getValue();
var nameD = sheet.getRange("Test Case Template!G3").getValue();
var name = nameA + nameB + nameC + ' ' + '//' + ' ' + nameD;
var destFolder = DriveApp.getFolderById("1pXJvplBAMz8oeS5tkyWVZSUCJsTuNrcS");
DriveApp.getFileById(sheet.getId()).makeCopy(name, destFolder);
}
, что приводит к идеальному имени файла, включая входы и все данные, которые мне нужны в имени файла.
Любые рекомендации по улучшению всегда приветствуются.