2016-11-13 18 views
5

का उपयोग कर डेटा के साथ Google शीट जोड़ें मैं पाइथन का उपयोग कर रहा हूं। मुझे Google API v4 का उपयोग करके स्प्रैडशीट में शीट जोड़ने की आवश्यकता है। मैं स्प्रेडशीट आईडी और एडशीट अनुरोध के साथ बैचअपडेट का उपयोग करके एक शीट बना सकता हूं (यह shetId देता है और खाली शीट बनाता है)। लेकिन मैं इसमें डेटा कैसे जोड़ सकता हूं?Google API v4

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 शीट्स एपीआई spreadsheets.values संग्रह प्रदान करता है ताकि मूल्यों को सरल पढ़ने और लिखने में सक्षम बनाया जा सके।

एक भी सीमा

एक भी श्रृंखला के लिए डेटा लिखने के लिए करने के लिए लेखन, एक spreadsheets.values.update अनुरोध का उपयोग करें:

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() 

अद्यतन अनुरोध के शरीर एक होना चाहिए ValueRange ऑब्जेक्ट, हालांकि केवल आवश्यक फ़ील्ड values है। यदि range निर्दिष्ट है, तो यह URL में सीमा से मेल खाना चाहिए। ValueRange में, आप वैकल्पिक रूप से majorDimension निर्दिष्ट कर सकते हैं। डिफ़ॉल्ट रूप से, ROWS का उपयोग किया जाता है। यदि COLUMNS निर्दिष्ट है, तो प्रत्येक आंतरिक सरणी पंक्ति के बजाय कॉलम पर लिखी जाती है।

लेखन से अधिक श्रेणियों

आप एक से अधिक असंतत पर्वतमाला लिखना चाहते हैं, तो आप एक spreadsheets.values.batchUpdate अनुरोध का उपयोग कर सकते हैं:

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 अनुरोध के शरीर होना चाहिए एक BatchUpdateValuesRequest ऑब्जेक्ट, जिसमें एक ValueInputOption और ValueRange ऑब्जेक्ट्स की एक सूची है (प्रत्येक wri के लिए एक टेंट रेंज)। प्रत्येक ValueRange ऑब्जेक्ट अपने range, majorDimension, और इनपुट करने के लिए डेटा निर्दिष्ट करता है।

उम्मीद है कि इससे मदद मिलती है।

1

आप Google शीट्स एपीआई 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)