首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取TypeError doc.sheetsByTitle不是一个函数,google-电子表格

获取TypeError doc.sheetsByTitle不是一个函数,google-电子表格
EN

Stack Overflow用户
提问于 2020-11-04 05:51:12
回答 1查看 559关注 0票数 1

我正在使用‘google-电子表格’,我正在成功地创建一个新的工作表,但由于某些原因,我无法操作甚至选择它。我搜索了所有的文档和网站,但仍然找不到解决办法。

代码语言:javascript
运行
复制
async function startup () {
    const doc = new GoogleSpreadsheet(config.sheetID);

    let creds = require('login data')

    await doc.useServiceAccountAuth(creds);

    await doc.loadInfo(); // loads document properties and worksheets
    console.log(doc.title);

    for (var i = 0; i < config.channelID.length; i++) {
        doc.addSheet({ title: config.channelID[i] })

        let sheet = await doc.sheetsByTitle(config.channelID[i])
        
    }
}

(node:50552) UnhandledPromiseRejectionWarning: TypeError: doc.sheetsByTitle is not a function

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-04 08:36:25

当我看到“节点-谷歌-电子表格”的脚本时,doc.sheetsByTitle似乎返回了一个对象。参考我想这可能是你出问题的原因。那么下面的修改如何?

发自:

代码语言:javascript
运行
复制
for (var i = 0; i < config.channelID.length; i++) {
    doc.addSheet({ title: config.channelID[i] })

    let sheet = await doc.sheetsByTitle(config.channelID[i])
    
}

至:

代码语言:javascript
运行
复制
for (var i = 0; i < config.channelID.length; i++) {
  await doc.addSheet({ title: config.channelID[i] });
  let sheet = doc.sheetsByTitle[config.channelID[i]];
  console.log(sheet.title);  // You can check the added sheet name here.
}

或者,在您的示例中,doc.addSheet还返回sheet对象。所以您可以使用以下脚本。

代码语言:javascript
运行
复制
for (var i = 0; i < config.channelID.length; i++) {
  const addedSheet = await doc.addSheet({ title: config.channelID[i] });
  console.log(addedSheet.title);  // You can check the added sheet name here.
}

注意:

  • 在此修改后的脚本中,请使用awaitdoc.addSheet
  • 请使用最新版本的节点-谷歌-电子表格。现在,它似乎是google-spreadsheet@3.0.13

参考资料:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64674846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档