我是Google脚本的新手,我想创建一个脚本来从电子表格中获取图片名称,并将该图片插入到Google文档中。我的问题是图像的名称。在电子表格中,它们以相同的文本存储在'testui /'开头。我需要从头开始将其删除。 尝试使用replaceText('testui /',''),但收到消息-TypeError:在对象testui中发现函数replaceText / 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);
}
}
如果您有相同的想法,我将非常高兴!非常感谢。
答案 0 :(得分:0)
您处在正确的轨道上。但是,replacetext()
是特定于Google文档主体对象的函数。
从电子表格的各个单元格中获得的值可以分为here定义的各种javascript变量。是的,我说过javascript,google脚本是基于javascript语言的,对于与操纵变量有关的大多数功能,您都遵循javascript语法和功能。
因此,在这种情况下,LoadTestContext
是一个字符串变量,您将使用javascript的Signature
函数来更改或操作您的字符串,如记录的here
在您的特定情况下,您将执行以下操作:
string.replace()