小编GS_*_*Dan的帖子

使用 Google Docs API 检索 namedRange 中的文本

将 Google Docs/Drive API 与 Node 结合使用,我成功创建了一个服务,该服务生成“模板”样式文档,其中包含 namedRanges 供其他用户写入。我想使用 Google Docs API 来读取在这些范围内输入的文本,但看不到一种干净的方法。鉴于我有每个范围的开始和结束索引,我认为这将非常简单!不幸的是,我看不到任何内置的方法?

目前看起来我将不得不请求整个谷歌文档,并且对于我正在观看的每个范围,比较每个节点的开始/结束索引并递归遍历树直到它们匹配。没有更好的方法来做到这一点吗?

干杯

编辑:

下面 Tanaike 的解决方案更简洁,但我已经有一个版本可以在我的 Firebase 函数上运行,所以我想我不妨分享一下。此代码检索具有给定 ID 的 Google 文档,并将 namedRanges 的内容作为字符串存储在 Firebase 实时数据库中,通过“BBCode”样式标签保持图像和表格完整无缺。下面的相关代码(请注意,我知道每个 namedRange 都在表格单元格内,这使得查找它们更容易):

async function StoreResponses(oauth2Client, numSections, documentId, meetingId, revisionId, roomId) 
{
    var gdocsApi = google.docs({version: 'v1', auth: oauth2Client});

    return gdocsApi.documents.get({ "documentId": documentId })
    .then((document) => {
        
        var ranges = document.data.namedRanges;
        var docContent = document.data.body.content;

        var toStore = [];

        for(var i = 0; i < numSections; i++)
        {
            var range = ranges[`zoomsense_section_${i}`].namedRanges[0].ranges[0] …
Run Code Online (Sandbox Code Playgroud)

named-ranges google-docs-api node.js google-apps-script

1
推荐指数
1
解决办法
458
查看次数