首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Nodejs Google Sheets API

Nodejs Google Sheets API
EN

Stack Overflow用户
提问于 2017-01-25 20:13:09
回答 3查看 4.8K关注 0票数 5

有人知道在哪里可以找到使用Google Sheets API编写google sheet的好例子吗?我使用过https://developers.google.com/sheets/api/quickstart/nodejs,并且能够成功地从Google Sheets中读取,但我在弄清楚如何写入Google Sheets时遇到了麻烦。

EN

回答 3

Stack Overflow用户

发布于 2019-01-15 04:37:16

假设你已经获得了授权的oAuth2Client,下面的方法对我来说是有效的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const { google } = require('googleapis');
const sheets = google.sheets({ version: 'v4', oAuth2Client});

async function writeSample() {
  let title = "NewSpreadsheet";
  try {
    var spreadsheet = await createSheet(title);
    console.log(`Spreadsheet ID: ${spreadsheet.spreadsheetId}`);

    range = "Sheet1!A1:D5";
    let valueInputOption = "RAW";
    values = [
      ["Item", "Cost", "Stocked", "Ship Date"],
      ["Wheel", "$20.50", "4", "3/1/2016"],
      ["Door", "$15", "2", "3/15/2016"],
      ["Engine", "$100", "1", "30/20/2016"],
      ["Totals", "=SUM(B2:B4)", "=SUM(C2:C4)", "=MAX(D2:D4)"]
    ];
    var result = await writeSheet(spreadsheet.spreadsheetId, range, valueInputOption, values);
    console.log('%d cells updated.', result.updatedCells);
    return result;
  }
  catch (error) {
    console.log(error);
  }
}

async function createSheet(title) {
  var resource = {
    properties: {
      title
    },
  };
  return sheets.spreadsheets.create({ resource, fields: 'spreadsheetId', })
    .then(response => response.data);
}

async function writeSheet(spreadsheetId, range, valueInputOption, values, ) {
  resource = {
    values
  };
  return sheets.spreadsheets.values.update({ spreadsheetId, range, valueInputOption, resource, })
    .then(response => response.data);
}
票数 3
EN

Stack Overflow用户

发布于 2017-01-26 10:49:55

sheets API具有关于google Sheets上的Writing a single range的示例。但是有一些概念你必须理解,比如A1 Notation

除了指南中的示例之外,我还编写了JS代码来演示在此SO thread上的工作表上的编写。这将是有帮助的,因为NodejS也使用JS。

票数 2
EN

Stack Overflow用户

发布于 2017-08-05 20:57:43

是的,我也读过noogui的参考资料:你需要一段时间才能完成一个程序。

但我已经成功地完成了以下功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    appedData ()
    deleteRow () (I can post them if you wish)

我需要在一行中插入:温度、湿度和压力,并删除最旧的行(第1行)。我将这两个函数放在同一行中,其中listMajors(...)最初是(在快速入门,js中)。然后把它放到一个循环中:坏主意:这些函数是异步的,所以你不知道一个函数什么时候结束,另一个函数什么时候开始,一个console.log()打印显示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 appedData ()
 deleteRow ()
 appedData ()
 deleteRow ()
 deleteRow ()
 appedData ()
 deleteRow ()
 appedData ()
 appedData ()

因此,有时appedData()和deleteRow()按实数顺序排列,有时按顺序排列两次或更多次appedData(),有时按顺序排列两次或更多次deleteRow()。

因此,我将quickstart.js改为同步函数,而不是异步函数:我删除了用fs.readFileSync替换fs.readFile的回调,它似乎可以工作

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

https://stackoverflow.com/questions/41860818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文