2016-09-15 71 views
1

我一直在试图让追加行示例工作几个小时现在没有运气,我没有得到任何错误,但我的电子表格并没有得到更新。试图追加行谷歌表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' 
    } 
} 

我缺少的东西?

编辑

我的电子表格完全是空的

+0

看起来比如更新的响应,而不是追加。可能是因为node.js客户端错误地调用了错误的HTTP方法。你确定你正在调用'sheetService.spreadsheets.values。* append *'?你能跟踪实际的HTTP方法吗?如果是这样,那是什么? –

+0

是啊我没有做任何事情是错误的客户端 – bubakazouba

+0

你的代码导致什么HTTP网址? –

回答

1

唯一的区别我看到的是例如包括一系列的表,你要更新:

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

我也试过,没有工作 – bubakazouba

2

Node.js的客户端库期望在请求中使用名为resource的参数。请看下面的例子:

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

对于谷歌API v4的格式化您的要求,例如应该工作:

requests.push({ 
appendCells: { 
    sheetId: 2063764471, 
    fields: '*', 
    rows: [{ 
    values: [{ // First Row 
     userEnteredValue: {stringValue: "first row"} 
    }, { 
     userEnteredValue: {numberValue: 2} 
    }, { 
     userEnteredValue: {numberValue: 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) { 
    // ...