2016-11-13 53 views
5

私はPythonを使用しています。 Google API v4を使用してスプレッドシートにシートを追加する必要があります。私はスプレッドシートのIDとaddSheet要求(それはshetIdを返し、空のシートを作成する)とbatchUpdateを使用してシートを作成することができます。しかし、どのようにしてデータを追加できますか?Google API v4を使用してGoogleシートにデータを追加

data = {'requests': [ 
    { 
     'addSheet':{ 
      'properties':{'title': 'New sheet'} 
     } 
    } 
]} 

res = service.spreadsheets().batchUpdate(spreadsheetId=s_id, body=data).execute() 
SHEET_ID = res['replies'][0]['addSheet']['properties']['sheetId'] 

答えて

1

スプレッドシート内のシートを作成した後、あなたが範囲にアクセスできることを考え出した「nameofsheetを!A1」すなわち

service.spreadsheets().values().update(spreadsheetId=s_id, range='New sheet!A1', body=data_i, valueInputOption='RAW').execute() 

「新シート」

名前の新しい作成シートにデータを掲載します。この要求
2

このコードを追加すると、Googleシートにデータを書き込むことができます。文書内 - Reading & Writing Cell Values

スプレッドシートは、行または列の任意の数を有する各シートと、複数のシートを有することができます。セルは、特定の行と列の交点にある位置であり、データ値を含むことができます。 GoogleスプレッドシートAPIには、値の簡単な読み書きを可能にするためのspreadsheets.valuesコレクションが用意されています。

values = [ 
    [ 
     # Cell values ... 
    ], 
    # Additional rows ... 
] 
body = { 
    'values': values 
} 
result = service.spreadsheets().values().update(
    spreadsheetId=spreadsheet_id, range=range_name, 
    valueInputOption=value_input_option, body=body).execute() 

更新要求の本体がなければならない:spreadsheets.values.update要求を使用し、単一の範囲にデータを書き込むには、単一の範囲に

を書き込む

ValueRangeオブジェクトですが、唯一の必須フィールドはvaluesです。 rangeが指定されている場合は、URLの範囲と一致する必要があります。 ValueRangeでは、オプションでmajorDimensionを指定できます。デフォルトでは、ROWSが使用されます。 COLUMNSを指定すると、各内部配列は行ではなく列に書き込まれます。

values = [ 
    [ 
     # Cell values 
    ], 
    # Additional rows 
] 
data = [ 
    { 
     'range': range_name, 
     'values': values 
    }, 
    # Additional ranges to update ... 
] 
body = { 
    'valueInputOption': value_input_option, 
    'data': data 
} 
result = service.spreadsheets().values().batchUpdate(
    spreadsheetId=spreadsheet_id, body=body).execute() 

batchUpdateメリクエストのボディがなければなりません:あなたは、複数の不連続な範囲を書きたい場合は

書く複数の範囲

は、あなたがspreadsheets.values.batchUpdate要求を使用することができますBatchUpdateValuesRequestオブジェクトで、ValueInputOptionとValueRangeオブジェクトのリスト(各wriに1つテンション範囲)。各ValueRangeオブジェクトは、それ自身の値を指定します。range,と入力するデータ。

これが役に立ちます。

1

私はGoogleのシートapi v4のpygsheetsのために書いた、より直感的なライブラリを試すこともできます。デフォルトのクライアントビットは面倒です。

import pygsheets 
gc = pygsheets.authorize() 

# Open spreadsheet 
sh = gc.open('my new ssheet') 

# create a worksheet  
sh.add_worksheet("new sheet",rows=50,cols=60) 

# update data with 2d vector 
sh.update_cells('A1:B10', values) 

# or skip let it infer range from size of values 
sh.update_cells('A1', values) 
関連する問題