Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 遍历行-谷歌工作表-合并文档_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 遍历行-谷歌工作表-合并文档

Google apps script 遍历行-谷歌工作表-合并文档,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我有一个包含4列的文档,每个列都有一个指向Google文档文件的链接。 我已经拼凑了一些代码,将文档合并在一起,以便将第2、3和4列附加到第1列中的文档中 我现在只需要一些帮助,将其转换为一个循环,这样它就可以在所有行中循环(在完成的文档中大约有500行) 如果任何列中缺少文件,代码也会中断,在理想情况下,我希望跳过该文件并转到下一列 有人能帮忙吗(是的,我知道代码很糟糕) 函数mergeGoogleDocs(){ var ss=SpreadsheetApp.openById('XXXXXXXX

我有一个包含4列的文档,每个列都有一个指向Google文档文件的链接。 我已经拼凑了一些代码,将文档合并在一起,以便将第2、3和4列附加到第1列中的文档中

我现在只需要一些帮助,将其转换为一个循环,这样它就可以在所有行中循环(在完成的文档中大约有500行)

如果任何列中缺少文件,代码也会中断,在理想情况下,我希望跳过该文件并转到下一列

有人能帮忙吗(是的,我知道代码很糟糕)

函数mergeGoogleDocs(){
var ss=SpreadsheetApp.openById('XXXXXXXXXXXXXXXXXXXXXXXX');
var sh=ss.getSheetByName('Sheet1');//访问特定的工作表
var row=sh.getRange(1,1).getValue();
var original=sh.getRange(第1行).getValue();
var arabic=sh.getRange(第2行).getValue();
var=sh.getRange(第3行).getValue();
var smallsteps=sh.getRange(第4行).getValue();
var docIDs=[原件、阿拉伯文、伊斯兰文、小步骤];
var baseDoc=DocumentApp.openById(docid[0]);
var body=baseDoc.getActiveSection();
对于(变量i=1;i
您的函数似乎做得更多。我不知道为什么您的描述基本上是在第1列中打开文档,并在第2列到第4列中附加数据,这就是这个函数所做的

function mergeGoogleDocs() {
  var ss=SpreadsheetApp.openById(ssid);
  var sh=ss.getSheetByName('Sheet1');
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  //assuming no headers for now
  vA.forEach(function(r,i){
    var doc=DocumentApp.openById(r[0]);
    var body=doc.getBody();
    body.appendParagraph(r[1]);
    body.appendParagraph(r[2]);
    body.appendParagrsph(r[3]);
    lsh.appendRow([r])
    Logger.log(i+1);//just to keep track of how many iterations we get before a possible timeout
    doc.saveAndClose();
  });
}

告诉我哪里出了问题,我会解决的。打开500个附加数据的文档并关闭文件很可能会导致脚本超时,因此请注意完成的数量,我们可以成批执行该过程。

工作表是否有标题?查看示例工作表会很有帮助,这样我就可以看到数据的外观。数据确实有标题-会有在2到4个文档之间合并。这些列包含指向另一个Google文档的链接,而不是要附加到文档的数据。您好,尝试了这个,它将列的值附加到第1列中引用的文档的末尾-但是这些列是指向不同google文档的链接-理想情况下,我希望将该文档的全部内容合并到初始文档中
function mergeGoogleDocs() {
  var ss=SpreadsheetApp.openById(ssid);
  var sh=ss.getSheetByName('Sheet1');
  var rg=sh.getDataRange();
  var vA=rg.getValues();
  //assuming no headers for now
  vA.forEach(function(r,i){
    var doc=DocumentApp.openById(r[0]);
    var body=doc.getBody();
    body.appendParagraph(r[1]);
    body.appendParagraph(r[2]);
    body.appendParagrsph(r[3]);
    lsh.appendRow([r])
    Logger.log(i+1);//just to keep track of how many iterations we get before a possible timeout
    doc.saveAndClose();
  });
}