2016-09-15 13 views
1

私は追加の行の例を今運がうまくいきわたるようにしようとしていますが、エラーは出ませんがスプレッドシートはまったく更新されません。行を追加しようとしています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' 
    } 
} 

私は何かが足りないのですか?

編集

私のスプレッドシートは完全に空である

+0

を私のためにかなりの仕事をしませんでした更新のための応答のように、追加のための応答ではありません。 node.jsクライアントが間違ったHTTPメソッドを誤って呼び出している可能性があります。 'sheetService.spreadsheets.values。* append *'を呼び出していますか?この結果、実際のHTTPメソッドをトレースできますか?もしそうなら、それは何ですか? –

+0

ええ、私は何もクライアントに間違っていませんでした – bubakazouba

+0

あなたのコードはどのようなHTTP URLになりますか? –

答えて

1

私が見る唯一の違いは、たとえばあなたが更新しているシートの範囲は含まれている:

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

私もそれを試してみました。 – bubakazouba

2

のNode.jsをクライアントライブラリは、resourceというパラメータで要求の本体を要求します。動作するはずのようなあなたの要求をフォーマットのGoogle API v4のため

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

:次の例を参照してください

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) { 
    // ... 
関連する問題