Google apps script 如何使用Google应用程序脚本在同一文档中复制和粘贴特定信息?

Google apps script 如何使用Google应用程序脚本在同一文档中复制和粘贴特定信息?,google-apps-script,Google Apps Script,我是一个使用GAS的新手我想做的是将我文档底部的一些信息复制到我想在文档中的任何地方,这应该可以通过复制信息并粘贴到我想要的地方来实现,但我希望使用Google应用程序脚本来完成,因为这是一项日常任务,使用函数更容易完成,而不是手动复制和粘贴。在搜索如何做到这一点时,我在电子表格上找到了很多关于如何做到这一点的信息,但我需要在谷歌文档上完成。我该怎么做 如果有人能指导我或给我发一个链接到另一个类似的问题,这将是非常有帮助的,我不知道从哪里开始 这就是我现在所拥有的,我获取当前文档的所有数据并再次

我是一个使用GAS的新手我想做的是将我文档底部的一些信息复制到我想在文档中的任何地方,这应该可以通过复制信息并粘贴到我想要的地方来实现,但我希望使用Google应用程序脚本来完成,因为这是一项日常任务,使用函数更容易完成,而不是手动复制和粘贴。在搜索如何做到这一点时,我在电子表格上找到了很多关于如何做到这一点的信息,但我需要在谷歌文档上完成。我该怎么做

如果有人能指导我或给我发一个链接到另一个类似的问题,这将是非常有帮助的,我不知道从哪里开始

这就是我现在所拥有的,我获取当前文档的所有数据并再次将其设置到页面,代码给了我问题,因为它删除了我的其他信息,还选择了文档的所有信息。我想选择一条特定信息,不复制内容样式。

函数copyPasteInfo(){
var doc=DocumentApp.getActiveDocument();
var body=doc.getBody();
var notesText=body.getText();
body.appendPageBreak();
body.setText(notesText);
}
指向文档的链接 我想做什么的视频示例

我试图复制并粘贴到文档底部的信息的图片

如果我正确理解了您的问题,此代码将帮助您实现目标

let body = DocumentApp.getActiveDocument().getBody();

function moveTable() {
  // Get the last table and the previous table found in your Doc
  const [previousTable, bottomTable] = getDesireTables();
  // Make a copy of your last table 
  const bottomTableCopy = bottomTable.copy();
  // Get the previous table's index
  const previousTableIndex = body.getChildIndex(previousTable);
  // Insert the last table's copy under the previous table  in your Doc
  body.insertTable(previousTableIndex + 1, bottomTableCopy);
  // Remove the original last table
  body.removeChild(bottomTable);
}

function getDesireTables(){
  const tablesArr = body.getTables().slice(-3);
  // Get the parent element type to check if it's a cell
  const parentELementType = tablesArr[tablesArr.length - 1].getParent().getType();
  if(parentELementType ===  DocumentApp.ElementType.TABLE_CELL){
    // If there's a table inside a table, return this
    return tablesArr.slice(0, 2);
  }
  else{
    return tablesArr.slice(-2);
  }
}
我所做的是获取文档中的最后两个表,然后复制最后一个表,并使用上一个表的索引,将其插入到上一个表下

编辑 我注意到你在桌子里面有一张桌子。因此,我添加了
getDesireTables
函数。它会检查你的底部桌子里面是否有桌子

文件 以下是我用来帮助您的文档:


    • 如果我正确理解了您的问题,此代码将帮助您实现目标

      let body = DocumentApp.getActiveDocument().getBody();
      
      function moveTable() {
        // Get the last table and the previous table found in your Doc
        const [previousTable, bottomTable] = getDesireTables();
        // Make a copy of your last table 
        const bottomTableCopy = bottomTable.copy();
        // Get the previous table's index
        const previousTableIndex = body.getChildIndex(previousTable);
        // Insert the last table's copy under the previous table  in your Doc
        body.insertTable(previousTableIndex + 1, bottomTableCopy);
        // Remove the original last table
        body.removeChild(bottomTable);
      }
      
      function getDesireTables(){
        const tablesArr = body.getTables().slice(-3);
        // Get the parent element type to check if it's a cell
        const parentELementType = tablesArr[tablesArr.length - 1].getParent().getType();
        if(parentELementType ===  DocumentApp.ElementType.TABLE_CELL){
          // If there's a table inside a table, return this
          return tablesArr.slice(0, 2);
        }
        else{
          return tablesArr.slice(-2);
        }
      }
      
      我所做的是获取文档中的最后两个表,然后复制最后一个表,并使用上一个表的索引,将其插入到上一个表下

      编辑 我注意到你在桌子里面有一张桌子。因此,我添加了
      getDesireTables
      函数。它会检查你的底部桌子里面是否有桌子

      文件 以下是我用来帮助您的文档:


      我不得不为我糟糕的英语技能道歉。不幸的是,从
      我试图将文档底部的信息复制到我想要的文档中的任何位置,我无法理解您的目标。我能问一下你的目标的细节吗?你能用一些虚拟数据共享一个文档吗?这也是您希望在文档中设置数据的示例please@Tanaike是的,问我更多没有问题,我的文档中有一个表,我需要复制并粘贴到文档的其他地方,例如,如果我有以下单词:first、second、third,我想用一个函数复制单词third并将其放在second之前。这是我尝试的一个例子,只是用文字而不是文字tables@Tanaike是的,我会等待,如果没有回答,我们会重新提问,谢谢你这么快的回答,我不得不为我糟糕的英语技能道歉。不幸的是,从
      我试图将文档底部的信息复制到我想要的文档中的任何位置,我无法理解您的目标。我能问一下你的目标的细节吗?你能用一些虚拟数据共享一个文档吗?这也是您希望在文档中设置数据的示例please@Tanaike是的,问我更多没有问题,我的文档中有一个表,我需要复制并粘贴到文档的其他地方,例如,如果我有以下单词:first、second、third,我想用一个函数复制单词third并将其放在second之前。这是我尝试的一个例子,只是用文字而不是文字tables@Tanaike是的,我会等待,如果没有回答,我们会重新提问,谢谢你这么快回答是的,你正确理解了我的意图,问题是我运行了你的代码并给了我一些问题1.这样说
      body.removeChild(bottomTable);元素不包含指定的子元素
      2。不复制所有表并粘贴它,只粘贴写有
      截止日期
      说明
      的部分。您能公开您共享的文档吗?这样我就可以用你们同样的表格和这里发生的事情是的你正确地理解了我要做的事情,问题是我运行了你的代码并给了我一些问题1.这样说
      body.removeChild(bottomTable);元素不包含指定的子元素
      2。不复制所有表并粘贴它,只粘贴写有
      截止日期
      说明
      的部分。您能公开您共享的文档吗?那样的话,我就可以使用你们同样精确的表格和这里发生的事情