【问题标题】:Copy / paste selection from google sheets into google docs via docs and sheets API?通过文档和表格 API 将选择从谷歌表格复制/粘贴到谷歌文档中?
【发布时间】:2022-01-07 03:07:34
【问题描述】:

我想通过我的 node.js 后端服务将选择从 google sheet 文档传输到 google docs 文档。我希望 google docs API 支持此功能,但我找不到所需的确切步骤。

为了可视化我想要做的事情,我在 Web UI 中截取了一个简单的屏幕截图,它准确地显示了需要发生的事情 - 不是手持设备,而是在我的后端服务中自动化:

据我了解,谷歌网络应用程序使用的 API 几乎与向开发人员公开的 API 完全相同,因此我希望这里的人能告诉我为实现这一点提出了哪些确切的请求。

这个问题有点类似:Copy selection from Google Sheets into a Google Doc (using REST API?),但它已有 4 年以上的历史,并没有引起太多关注,同时 API 发生了很多事情。此外,我对使用应用脚本不感兴趣,答案建议这样做。

【问题讨论】:

    标签: node.js google-sheets-api google-docs-api


    【解决方案1】:

    我相信你的目标如下。

    • 您想从 Google 电子表格中复制值并将它们作为表格粘贴到 Google 文档中。
    • 您希望使用 googleapis for Node.js 来实现此目的。
    • 您已经能够通过 Node.js 使用 Sheets API 和 Docs API。

    如果我的理解是正确的,下面的示例脚本怎么样?

    我的情况和你一样。但遗憾的是,当时我觉得这个过程可能有点复杂。所以我创建了一个 Node.js 库来实现这一点。此示例脚本使用该库。 Ref

    用法:

    1。安装一个库。

    $ npm install --save-dev gdoctableapp
    

    $ npm install --global gdoctableapp
    

    2。准备脚本。

    在此示例脚本中,请在您的脚本中使用您的auth。这个auth 与 Node.js 的快速入门相同。 Ref 但是在这种情况下,请设置https://www.googleapis.com/auth/spreadsheets.readonlyhttps://www.googleapis.com/auth/documents 的范围。

    const gdoctableapp = require("gdoctableapp"); // This is the library.
    
    const spreadsheetId = "###"; // Please set your Spreadsheet ID.
    const documentId = "###"; // Please set your Document ID.
    
    const sheets = google.sheets({ version: "v4", auth });
    const { data } = await sheets.spreadsheets.values.get({ spreadsheetId, range: "'Sheet1'!A1:C3" }).catch((e) => console.log(e));
    const values = data.values;
    gdoctableapp.CreateTable(
      {
        auth,
        documentId,
        values,
        rows: values.length,
        columns: values[0].length,
        append: true,
      },
      (err, res) => {
        if (err) {
          console.log(err);
          return;
        }
        console.log(res);
      }
    );
    
    • 运行此脚本时,将从单元格'Sheet1'!A1:C3 中检索值,并将其作为表格放入 Google 文档中。在这种情况下,表格会附加到 Google 文档中。

    节点:

    • 此示例脚本假设您已经能够使用 Sheets API 和 Docs API,并检索访问令牌以使用 API。所以请注意这一点。

    参考资料:

    【讨论】:

    • 这看起来很棒!我同时启用了 Sheets API 和 Docs API,所以我应该很高兴。我假设gdoctableapp.CreateTable 返回一个 js 对象,该对象以文档理解的方式定义表?然后我必须使用batchUpdateInsertTableRequest 将其插入我的文档中?(developers.google.com/docs/api/reference/rest/v1/documents/…)?
    • @Rasmus Puls 感谢您的回复。在这个库中,当使用我提出的脚本时,会从 Google 电子表格中检索值,然后将检索到的值作为新表放入 Google 文档中。所以在这种情况下,在库端使用 Docs API。示例图片可见github.com/tanaikech/node-gdoctableapp#7-createtable
    • 好的,谢谢。对于我需要实现的目标,这似乎是一个非常有用的灵感来源。
    • @RasmusPuls 出于文档目的,如果可以的话,请接受对您有帮助的答案 (✓) - 它可以帮助将来遇到相同问题的其他人也找到解决方案:)跨度>
    • 当然! Tanaike 的出色答案值得肯定
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-26
    • 1970-01-01
    相关资源
    最近更新 更多