我无法在Google SpreadSheets中插入值(使用nodejs& module googleapis)

时间:2017-05-26 21:11:33

标签: javascript node.js google-api

我有这段代码

这是Google表格API V4 https://developers.google.com/sheets/api/quickstart/nodejs

中的一个示例

但是我需要在电子表格中插入一个值,在文档中我看到了本案例的追加方法

我有以下附加功能(使用 googleapis库

function addValues(auth) {
var sheets = google.sheets('v4');

val = Object.assign({
  majorDimension: "ROWS",
  values: [
    ["Hello","Google","Sheets"]
  ]
},sheets.spreadsheets.values)

//console.log("",val)

val.append({
  auth: auth,
  range: "A1",
  spreadsheetId: '1bhXbigMkNyTgKFVePZIwP5VZE1hN0XcvTRdeFdUSUdo',
  includeValuesInResponse: true,
  insertDataOption: "INSERT_ROWS",
  responseDateTimeRenderOption: "FORMATTED_STRING",
  responseValueRenderOption: "UNFORMATTED_VALUE",
  valueInputOption: "RAW"
}, function(err, response){
  if (err) {
    console.log('The API returned an error: ' + err);
    return;
  }
  console.log(response);
  })
}

......但它没有工作

控制台返回以下消息

  

{spreadsheetId:' 1bhXbigMkNyTgKFVePZIwP5VZE1hN0XcvTRdeFdUSUdo',
     tableRange:' \' Hoja 1 \'!A1:C2',
     更新:
     {spreadsheetId:' 1bhXbigMkNyTgKFVePZIwP5VZE1hN0XcvTRdeFdUSUdo',
       updatedRange:' \' Hoja 1 \'!A3',
       updatedData:{范围:' \' Hoja 1 \'!A3',majorDimension:' ROWS' }}

它看起来像"值"数组未被发送

我的完整代码位于https://github.com/aaroncadillac/google-sheets-api/tree/test

重要文件是quick.js,希望你能帮助我。
再见!

1 个答案:

答案 0 :(得分:0)

解决!!!

如果你也经历过这个或者不知道如何使用 googleapis ,你可以查看google api的官方文档,因为这个库非常受制于此,但是没有记录如何使用谷歌资源

此案例的解决方案是将参数“resource”添加到主要对象“parameters”

追加功能看起来像这样

sheets.spreadsheets.values.append({
  auth: auth,
  range: "A1",
  spreadsheetId: '1bhXbigMkNyTgKFVePZIwP5VZE1hN0XcvTRdeFdUSUdo',
  includeValuesInResponse: true,
  insertDataOption: "INSERT_ROWS",
  responseDateTimeRenderOption: "FORMATTED_STRING",
  responseValueRenderOption: "UNFORMATTED_VALUE",
  valueInputOption: "RAW",
  resource: {
    values: [
      ["Hello", "Google", "Sheets"]
    ]
  }
}, function(err, response){
  if (err) {
    console.log('The API returned an error: ' + err);
    return;
  }
  console.log(response);
});