首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >表格表格电子表格到doc

表格表格电子表格到doc
EN

Stack Overflow用户
提问于 2022-11-27 19:32:59
回答 1查看 37关注 0票数 1

我有一个电子表格,其中的单元格可以保存在: A14:E中。我有一个文档模板,在这里我想要以准确的格式复制这个表。在电子表格中,我命名为A14:E - "Tabel_angajati“

代码语言:javascript
复制
var ss = SpreadsheetApp.getActiveSpreadsheet();
var Tabel_angajati = ss.getRangeByName('Tabel_angajati').getValues();

//google

代码语言:javascript
复制
let copyFile = DriveApp.getFileById("template-id").makeCopy(),
        copyID = copyFile.getId(),
        copyDoc = DocumentApp.openById(copyID),
        copyBody = copyDoc.getBody(),
        copyHeader = copyDoc.getHeader()

//替换案文

代码语言:javascript
复制
const body = copyDoc.getBody()
body.replaceText("{{Tabel_angajati}}",Tabel_angajati) 

当我运行这个脚本时,在doc中的表是一行值,而不是一个表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-28 00:49:33

修改要点:

  • 在您的脚本中,replacement of replaceText(searchPattern, replacement)是一个字符串类型。getValues()检索的值是一个二维数组.在这种情况下,当这个二维数组用于replacement时,似乎使用了toString()。这样,就会出现a line of values。我想这可能是你出问题的原因。
  • 在您的脚本中,这些值由getValues()检索。在这种情况下,我认为getDisplayValues()可能是合适的。

当这些点反映在示例脚本中时,下面的示例脚本如何?

示例脚本:

代码语言:javascript
复制
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}}中。

参考文献:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74593191

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档