2013-01-31 22 views
6

मैं gspread लाइब्रेरी का उपयोग कर Google स्प्रेडशीट से एक रिकॉर्ड हटाना चाहता हूं।gspread lib का उपयोग कर Google स्प्रेडशीट से पंक्ति को हटाने/निकालने के लिए कैसे करें। अजगर में?

साथ ही, मैं Google स्प्रेडशीट में पंक्तियों/अभिलेखों की संख्या कैसे प्राप्त कर सकता हूं? gspread.row_count() प्रदान करता है, जो रिक्त स्थान सहित पंक्तियों की कुल संख्या देता है, लेकिन मैं केवल उन पंक्तियों की गणना करना चाहता हूं जिनमें डेटा है।

उत्तर

1

स्रोत कोड पढ़ना ऐसा लगता है कि पंक्तियों को सीधे हटाने के लिए ऐसी कोई विधि नहीं है - वर्कशीट का आकार बदलने के लिए उन्हें जोड़ने के लिए केवल 0 तरीके हैं या .resize() विधि हैं। जब पंक्तियों की संख्या प्राप्त करने की बात आती है, तो .row_count() विधि है जो आपके लिए नौकरी करनी चाहिए।

+0

उत्तर के लिए धन्यवाद .. मैं Knowe दूर करने के लिए/रिकॉर्ड हटा सकते हैं और दूसरी बात में कोई विधि नहीं है कि वहाँ, ROW_COUNT देता नंबर या रिक्त डेटा सहित पंक्तियां, लेकिन मुझे केवल उन पंक्तियों की गिनती चाहिए जिनके पास डेटा – Chintan

+0

है, फिर आपका प्रश्न पर्याप्त विस्तृत नहीं है। इस तरह के मामले में, आप प्रत्येक पंक्ति पर फिर से सक्रिय कर सकते हैं, जांचें कि इसमें कोई डेटा है या नहीं, और यदि यह करता है तो इसे गिनें। – SpankMe

+0

फिर से धन्यवाद, लेकिन मान लें कि स्प्रेडशीट में 1000 रिकॉर्ड (रिक्त डेटा सहित) हैं और सभी पंक्तियों को एक-एक करके जांचने के लिए .... इसमें बहुत अधिक समय लगता है ... यह मेरे लिए काम नहीं करता है ... – Chintan

1

क्या आप निर्दिष्ट कर सकते हैं कि आप पंक्तियों/अभिलेखों को कैसे हटाना चाहते हैं? क्या वे एक चादर के बीच में हैं? तल? शीर्ष?

मेरे पास ऐसी स्थिति थी जहां मैंने इसे संसाधित करने के बाद हेडर को छोड़कर सभी डेटा मिटा देना चाहता था। ऐसा करने के लिए मैंने वर्कशीट का दो बार आकार बदल दिया।

#first row is data header to keep  
worksheet.resize(rows=1) 
worksheet.resize(rows=30) 

यह वर्कशीट को हटाए बिना पूरी शीट को पोंछने के लिए एक सरल ब्रूट फोर्स समाधान है।

डेटा के साथ गणना पंक्तियाँ

एक तरह से get_all_records() का उपयोग कर तो उस वस्तु की लंबाई की जांच एक json वस्तु में डेटा डाउनलोड करने के लिए किया जाएगा। वह विधि अंतिम पंक्तियों के ऊपर सभी पंक्तियों को वापस लाती है। यह पंक्तियों को वापस कर देगा जो रिक्त हैं, इसके बाद एक पंक्ति खाली नहीं है, लेकिन पीछे की ओर रिक्त स्थान नहीं है।

+0

मुझे यह जवाब वास्तव में उपयोगी पाया। और गति इसके बारे में सबसे अच्छी बात है। – Ayoub

3

जीएसपीड संस्करण 0.5.0 (दिसंबर 2016) के बाद से आप delete_row() के साथ एक पंक्ति को हटा सकते हैं।

उदाहरण के लिए, सूचकांक 42 के साथ एक पंक्ति को हटाने के लिए, आप ऐसा करेंगे:

worksheet.delete_row(42) 
+0

मैं 1000 पंक्तियों वाली स्प्रेडशीट पर delete_row (15) को आजमा रहा हूं, और अभी भी 10 मिनट के बाद यह चल रहा है। क्या यह लंबे समय तक लेने की उम्मीद है? क्या यह पंक्ति को हटाते समय नीचे पंक्तियों की कोई कॉपी पेस्ट करता है? – apadana