Как заменить текст в объекте - PullRequest
0 голосов
/ 24 января 2019

Я новичок в скрипте Google и хочу создать скрипт, который будет выводить имя изображения из электронной таблицы и вставлять это изображение в документы Google.Моя проблема заключается в названиях изображений.В электронной таблице они хранятся с тем же текстом в начале «testui /».Мне нужно удалить его с самого начала.Попытался использовать replaceText ('testui /', ''), но получил сообщение - TypeError: Не удалось найти функцию replaceText в объекте testui / 01-03-2019 11-02-14.Signature.054223.png

    function createDocument() {
var headers = Sheets.Spreadsheets.Values.get('1M9biFRsbMtc6zDcAWgOYqJwNbivvVet-ZCD4joI', 'A1:I1');
var tactics = Sheets.Spreadsheets.Values.get('1M9biFRsbMtc6zDcAWgOYqJwNbivvVet-ZCD4joI', 'A2:I3');
var templateId = '1PxbTS67vrK8tqruNqjkqJMcjtGbqzQ';

for(var i = 0; i < tactics.values.length; i++){

var TimeStamp = tactics.values[i][0];
var AktoTipas = tactics.values[i][2];
var Kodas = tactics.values[i][6];
var Signature = tactics.values[i][8];

/*Here I got message TypeError: Cannot find function replaceText in object testui/01-03-2019 11-02-14.Signature.054223.png
Signature.replaceText('testui/', '')
*/

//Make a copy of the template file
var documentId = DriveApp.getFileById(templateId).makeCopy().getId();

//Rename the copied file
DriveApp.getFileById(documentId).setName(AktoTipas + '-' + TimeStamp + '-' + Kodas);

//Get the document body as a variable
var body = DocumentApp.openById(documentId).getBody();

//Insert the supplier name
body.replaceText('##aktas##', AktoTipas)
body.replaceText('##Laikas##', TimeStamp)
body.replaceText('##Signature##', Signature)

insertImageFromDrive(body, Signature);

}

}
function insertImageFromDrive(body, Signature){
var img = DriveApp.getFilesByName(Signature);
while (img.hasNext()) {
var image = img.next();
body.insertImage(3, image); 
}
}

Если у вас есть такие же идеи, я буду очень счастлив!Большое спасибо.

1 Ответ

0 голосов
/ 25 января 2019

Вы на правильном пути.Однако replacetext() является функцией, специфичной для объекта тела документа Google.

Значения, которые вы получаете из отдельных ячеек электронной таблицы, могут быть классифицированы в различные переменные javascript, как определено здесь .Да, я сказал javascript, скрипт google основан на языке javascript, и для большинства функций, относящихся к работе с переменными, вы следуете синтаксису и функциям javascript.

Итак, в этом случае Signature является строковой переменной, и выбудет использовать string.replace() функцию javascript для изменения или манипуляции с вашей строкой, как описано здесь

В вашем конкретном случае вы будете делать следующее:

Signature = Signature.replace('testui/', '')
...