如何替换对象中的文本

时间:2019-01-24 18:41:28

标签: google-apps-script google-docs google-docs-api

我是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); 
}
}

如果您有相同的想法,我将非常高兴!非常感谢。

1 个答案:

答案 0 :(得分:0)

您处在正确的轨道上。但是,replacetext()是特定于Google文档主体对象的函数。

从电子表格的各个单元格中获得的值可以分为here定义的各种javascript变量。是的,我说过javascript,google脚本是基于javascript语言的,对于与操纵变量有关的大多数功能,您都遵循javascript语法和功能。

因此,在这种情况下,LoadTestContext是一个字符串变量,您将使用javascript的Signature函数来更改或操作您的字符串,如记录的here

在您的特定情况下,您将执行以下操作:

string.replace()