试图附加行google sheet api

时间:2016-09-15 02:34:37

标签: node.js google-sheets-api

我一直试图让追加行示例现在运行几个小时而没有运气,我没有收到任何错误,但我的电子表格根本没有得到更新。

https://developers.google.com/sheets/samples/writing#append_values

function insertInSpreadSheet(sheetId, sheetService) {
var body = {
    "range": "Sheet1",
    majorDimension: "ROWS",
    "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 params = {
    spreadsheetId: sheetId,
    "range": "Sheet1",
    valueInputOption: "USER_ENTERED",
    media: {
        body: body  
    }
};
sheetService.spreadsheets.values.append(params, function(err, res) {
    if(err){
        console.log(err);
        return;
    }
    console.log(res);
    return;
});
}//end function

响应:

{ 
    spreadsheetId: '1NvBbTlET7G5yhuuFF6zj-7LQUQ9TI85_geviRLuzCD0',
    updates: { 
        spreadsheetId: '1NvBbTlET7G5yhuuFF6zj-7LQUQ9TI85_geviRLuzCD0',
        updatedRange: 'Sheet1!A1' 
    } 
}

我错过了什么吗?

修改

我的电子表格完全是空的

4 个答案:

答案 0 :(得分:2)

Node.js客户端库期望在名为resource的参数中请求的主体。请参阅以下示例:

sheets.spreadsheets.values.append({
  spreadsheetId: spreadsheetId,
  range: 'Sheet1',
  valueInputOption: 'USER_ENTERED',
  resource: body,
}, function (err, response) {
  // ...
});

答案 1 :(得分:1)

我看到的唯一区别是该示例包含您要更新的工作表的范围:

  "range": "Sheet1!A1:E1",

答案 2 :(得分:1)

对于Google API v4格式化您的请求应该有效:

requests.push({
appendCells: {
  sheetId: 2063764471,
  fields: '*',
  rows: [{
    values: [{ // First Row
      userEnteredValue: {stringValue: "first row"}
    }, {
      userEnteredValue: {numberValue: 2}
    }, {
      userEnteredValue: {numberValue: 3}
    }]
  }]
}});

答案 3 :(得分:1)

答案对我来说不起作用......

  // file comes from drive.files.list
  // sheet comes from sheets.spreadsheets.get
  const rows = [['1','2',3/* , ... */]]; 
  const request = {
    spreadsheetId: file.id,

    range: sheet.title,  // TODO: Update placeholder value.

    valueInputOption: 'USER_ENTERED',

    insertDataOption: 'INSERT_ROWS',  // TODO: Update placeholder value.

    resource: {
      values: rows
    }
  };

  sheets.spreadsheets.values.append(request, function (err, response) {
   // ...