2016-11-24 5 views
5

मैं ऐसे कोड लिखने के लिए संघर्ष कर रहा हूं जो मुझे Google शीट की पहली खाली पंक्ति ढूंढें।पाइथन जीएसपीआरएड का उपयोग कर Google स्प्रेड शीट की पहली खाली पंक्ति कैसे खोजें?

मैं github.com/burnash/gspread

से gspread पैकेज का उपयोग कर रहा मुझे खुशी है कि अगर कोई मदद कर सकते हैं :)

मैं वर्तमान में सिर्फ मॉड्यूल आयातित और कार्यपत्रक खोल दिया होगा

scope = ['https://spreadsheets.google.com/feeds'] 

credentials = ServiceAccountCredentials.from_json_keyfile_name('ddddd-61d0b758772b.json', scope) 

gc = gspread.authorize(credentials) 

sheet = gc.open("Event Discovery") 
ws = sheet.worksheet('Event Discovery') 

मैं पंक्ति 1158 खोजना चाहता हूं जो एक कार्य के साथ वर्कशीट की पहली खाली पंक्ति है, जिसका अर्थ है कि हर बार पुरानी खाली पंक्ति भर जाती है, यह अगली खाली पंक्ति See here

+0

हमें दिखाएं कि अब तक आपके पास क्या है। –

+0

मेरा मतलब यह नहीं था। पंक्तियों के माध्यम से पुनरावृत्त कुछ कोड दिखाएं और एक खाली की जांच करने का प्रयास करें। –

+0

हाय एलेक्स, मुझे नहीं पता कि कोड कैसे लिखना है क्योंकि यह एक नया पैकेज है जिसे मैंने अभी पाया है और मुझे यह बहुत अच्छी तरह से ज्ञात नहीं है –

उत्तर

8

तरह से मैं इस लक्ष्य को हासिल करने में कामयाब रहे था:

def next_available_row(worksheet): 
    str_list = filter(None, worksheet.col_values(1)) # fastest 
    return str(len(str_list)+1) 

scope = ['https://spreadsheets.google.com/feeds'] 
credentials = ServiceAccountCredentials.from_json_keyfile_name('auth.json', scope) 
gc = gspread.authorize(credentials) 
worksheet = gc.open("sheet name").sheet1 
next_row = next_available_row(worksheet) 

#insert on the next available row 

worksheet.update_acell("A{}".format(next_row), somevar) 
worksheet.update_acell("B{}".format(next_row), somevar2) 
+1

यह एक अच्छा समाधान है, धन्यवाद पेड्रो! –

+0

आपका स्वागत है @ थान –

+2

पायथन 3 में, 'next_available_row' के कार्य में 'सूची()' जोड़ें: '' 'str_list = list (फ़िल्टर (कोई नहीं, sheet.col_values ​​(1))' '' – Hoenie

0
def find_empty_cell(): 
    alphabet = list(map(chr, range(65, 91))) 
    for letter in alphabet[0:1]: #look only at column A and B 
     for x in range(1, 1000): 
      cell_coord = letter+ str(x) 
      if wks.acell(cell_coord).value == "": 
       return(cell_coord) 

मैं इस थोड़े लापरवाह फ़ंक्शन का उपयोग पहले खाली कक्ष को खोजने के लिए। मुझे खाली पंक्ति नहीं मिल रही है क्योंकि अन्य कॉलम में पहले से ही मान हैं।

ओह, और मैपिंग के साथ 2.7 और 3.6 के बीच कुछ समस्याएं हैं जिनके लिए मुझे वर्णमाला को स्ट्रिंग में बदलने की आवश्यकता है।

संबंधित मुद्दे