我有一个电子表格,其中的单元格可以保存在: A14:E中。我有一个文档模板,在这里我想要以准确的格式复制这个表。在电子表格中,我命名为A14:E - "Tabel_angajati“
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Tabel_angajati = ss.getRangeByName('Tabel_angajati').getValues();let copyFile = DriveApp.getFileById("template-id").makeCopy(),
copyID = copyFile.getId(),
copyDoc = DocumentApp.openById(copyID),
copyBody = copyDoc.getBody(),
copyHeader = copyDoc.getHeader()//替换案文
const body = copyDoc.getBody()
body.replaceText("{{Tabel_angajati}}",Tabel_angajati) 当我运行这个脚本时,在doc中的表是一行值,而不是一个表。
发布于 2022-11-28 00:49:33
修改要点:
replacement of replaceText(searchPattern, replacement)是一个字符串类型。getValues()检索的值是一个二维数组.在这种情况下,当这个二维数组用于replacement时,似乎使用了toString()。这样,就会出现a line of values。我想这可能是你出问题的原因。getValues()检索。在这种情况下,我认为getDisplayValues()可能是合适的。当这些点反映在示例脚本中时,下面的示例脚本如何?
示例脚本:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Tabel_angajati = ss.getRangeByName('Tabel_angajati').getDisplayValues();
var copyFile = DriveApp.getFileById("template-id").makeCopy(); // Please set your Document ID.
var copyID = copyFile.getId();
var copyDoc = DocumentApp.openById(copyID);
var body = copyDoc.getBody();
var search = "{{Tabel_angajati}}";
var s = body.findText(search);
while (s) {
var e = s.getElement();
const i = body.getChildIndex(e.getParent());
e.removeFromParent();
body.insertTable(i, Tabel_angajati);
s = body.findText(search, s);
}
}Tabel_angajati命名范围的值,并将一个表作为替代的表放在{{Tabel_angajati}}中。参考文献:
https://stackoverflow.com/questions/74593191
复制相似问题