这是我的谷歌表格图片。
我想当从模板导入到这里创建脚本时可以吗?
这里的代码我用来创建谷歌文档
// extract values from array of data
var date_time = data[i][0];
convert_time = Utilities.formatDate(new Date(date_time), "GMT+8", "E | dd/MMM/yyyy | hh:mm:ss a");
var emp_name = data[i][1];
var emp_id = data[i][2];
var emp_dept = data[i][3];
var emp_laptop = data[i][4];
var emp_serialno = data[i][5];
var emp_acc1 = data[i][6];
var emp_acc2 = data[i][7];
var emp_acc3 = data[i][8];
var emp_acc4 = data[i][9];
var emp_acc5 = data[i][10];
var emp_sign = data[i][11];
var it_sign = data[i][12];
// only proceed if got Body of new File
if (openNewFile) {
// replace tags with data from sheet
newFileBody.replaceText('<<date-time>>', convert_time);
newFileBody.replaceText('<<emp-name>>', emp_name);
newFileBody.replaceText('<<emp-id>>', emp_id);
newFileBody.replaceText('<<emp-dept>>', emp_dept);
newFileBody.replaceText('<<emp-laptop>>', emp_laptop);
newFileBody.replaceText('<<emp-serialnumber>>', emp_serialno);
newFileBody.replaceText('<<emp-acc1>>', emp_acc1);
newFileBody.replaceText('<<emp-acc2>>', emp_acc2);
newFileBody.replaceText('<<emp-acc3>>', emp_acc3);
newFileBody.replaceText('<<emp-acc4>>', emp_acc4);
newFileBody.replaceText('<<emp-acc5>>', emp_acc5);
newFileBody.replaceText('<<emp-sign>>', emp_sign);
newFileBody.replaceText('<<it-sign>>', it_sign);
我认为这个答案可能有助于理解解决您的问题。 自动将Google Sheet生成的QR码作为图像传输到Google Doc当此答案的脚本反映在您的显示脚本中时,以下修改如何?
不幸的是,我不知道你的实际脚本。所以,这是一个简单的修改。请在您的实际脚本中反映这一点。
请将以下函数添加到您的脚本中。
// ref: https://stackoverflow.com/a/71151203/7108653
var replaceTextToImage = function (body, searchText, url, width = 200) {
var next = body.findText(searchText);
if (!next) return;
var r = next.getElement();
r.asText().setText("");
var img = r.getParent().asParagraph().insertInlineImage(0, UrlFetchApp.fetch(url).getBlob());
if (width && typeof width == "number") {
var w = img.getWidth();
var h = img.getHeight();
img.setWidth(width);
img.setHeight(width * h / w);
}
return next;
};
并且,请按如下方式修改您的脚本。从您显示的图像来看,我猜测在您的情况下,
var emp_sign = data[i][11]
和var it_sign = data[i][12]
是图像URL。另外,它假设您的 URL 的文件是公开共享的。请小心这一点。
newFileBody.replaceText('<<emp-sign>>', emp_sign);
newFileBody.replaceText('<<it-sign>>', it_sign);
replaceTextToImage(newFileBody, '<<emp-sign>>', emp_sign);
replaceTextToImage(newFileBody, '<<it-sign>>', it_sign);
如果要更改图像大小,请将图像宽度添加到函数的第 4 个参数
replaceTextToImage
。