通过文档和工作表 API 将 google 工作表中的选择复制/粘贴到 google 文档中?

Copy / paste selection from google sheets into google docs via docs and sheets API?

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

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

据我了解,google 网络应用程序几乎使用与向开发人员公开的完全相同的 API,所以我希望这里有人可以告诉我具体的请求是什么这会发生。

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

我相信你的目标如下。

  • 您想从 Google 电子表格复制值并将它们作为 table.
  • 粘贴到 Google 文档
  • 您想使用 Node.js 的 googleapis 实现此目的。
  • 您已经可以通过 Node.js 使用表格 API 和文档 API。

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

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

用法:

1。安装库。

$ npm install --save-dev gdoctableapp

$ npm install --global gdoctableapp

2。准备脚本。

在此示例脚本中,请在您的脚本中使用您的 authauth 与 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 中检索值并将其作为 table 放入 Google 文档。在这种情况下,table 附加到 Google 文档。

节点:

  • 此示例脚本假定您已经能够使用表格 API 和文档 API,并检索使用 API 的访问令牌。所以请注意这一点。

参考文献: