首页 文章

Nodejs Google表格API

提问于
浏览
2

有谁知道在哪里可以找到使用Google表格API写入谷歌表的好例子?我已经使用了https://developers.google.com/sheets/api/quickstart/nodejs,并且成功地能够从Google表格中读取,但我无法弄清楚如何写入Google表格 .

3 回答

  • 2

    Sheets API在google工作表上有关于Writing a single range的示例 . 有必要了解的概念,如A1 Notation .

    除了指南中的样本之外,我还编写了JS代码来演示写在这个SO thread上的表格 . 这将是有用的,因为NodejS也使用JS .

  • 0

    是的,我也读过noogui的参考资料:你需要一些时间才能完成一个程序 . 但我已成功完成以下功能:

    appedData()deleteRow()(如果你愿意,我可以发布它们)

    我需要插入:temp,湿度和压力连续并组合删除最旧的行(第1行) . 我将这两个函数放在listMajors(...)最初的同一行中(在quickstart,js中) . 然后把它放到一个循环中:坏主意:这些函数是异步的,所以你不知道什么时候完成而另一个开始,一个console.log()打印显示:

    appedData()deleteRow()appedData()deleteRow()deleteRow()appedData()deleteRow()appedData()appedData()

    所以有时appedData()和deleteRow()按实际顺序排序,有时两次或多次appedData()按顺序,有时候两次或多次deleteRow()依次排序 .

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

  • 0

    假设您已获得授权的oAuth2Client,以下内容适用于我 .

    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);
    }
    

相关问题