2014-04-19 8 views
5

स्कोपसेवा त्रुटि: Google स्क्रिप्ट के बारे स्प्रेडशीट्स

मैं एक स्क्रिप्ट है कि एक एपीआई (JSON प्रतिक्रिया के साथ) के लिए जंजीर कॉल करने और एक स्प्रेडशीट में परिणाम लिखेंगे लिखने के लिए शुरू कर दिया।

क्या होता है:

एक बार मैं स्क्रिप्ट कोड डिबग, यह सिर्फ ठीक चलाता है, कोई बड़ी समस्या के साथ, लेकिन यह कुछ चलाता है एक बार मैं स्प्रेडशीट बटन ही (मेनू मैं बनाया से) से चलाने के स्क्रिप्ट के चरणों और उससे अधिक, कोई अन्य त्रुटि विवरण के साथ Service Error: Spreadsheet पॉप करता है।

Weirdness

मैं इतना है कि मैं डिबगर से बाहर स्क्रिप्ट चलाने जबकि इसकी प्रगति की निगरानी कर सकते हैं, आरंभ करने के लिए "लॉग" एक स्प्रेडशीट सेल करने के लिए प्रक्रिया की वर्तमान कदम।

समस्या यह है, एक बार मैं इस तरह के रूप में कुछ "यादृच्छिक" टुकड़े के लिए कदम:

sheet.getRange("F2").setValue(currentPage); 

कोड विभिन्न बिंदुओं में तोड़ने के लिए जाता है।

कोड नमूना: http://pastebin.com/HjmSwEYZ

आपको बस इतना करना है::

आप यहां मुद्दा पुन: पेश करने के लिए एक कोड प्राप्त कर सकते

1 - Google डिस्क

पर एक नया स्प्रैडशीट बनाएं

2 - हिट टूल्स -> स्क्रिप्ट संपादक

3 - एक नया बनाएं स्क्रिप्ट, में पेस्ट करते हैं, और बचाने के

4 - स्प्रेडशीट (F5) को पुनः लोड करें ताकि कस्टम मेनू अब दिखाई देगा "गिल्ड वार्स 2 ट्रैकर"

5 - बटन पर क्लिक करें और "सूची सभी" मारा

वांछित आउटपुट:

क्या इस कोड चाहिए (अगर यह इस त्रुटि के लिए नहीं था) है:

1 - एक अनुरोध निष्पादित

: -: इस यूआरएल पर प्रत्येक पृष्ठ के ऊपर दोहराता, json पार्स करने और स्प्रेडशीट

अस्वीकरण में लौटे मूल्यों लेखन http://www.gw2spidy.com/api/v0.9/json/items/all/1

2 (जो गिल्ड वार्स के 2 itens पहले पृष्ठ वापस आ जाएगी)

शीट में सभी "लॉग" संदेशों के बारे में खेद है। यह मेरी प्रगति को ट्रैक करने का एक बेताब प्रयास था, मुझे पता है कि मुझे यह नहीं करना चाहिए।

अग्रिम धन्यवाद

अद्यतन 1:

एक और स्प्रेडशीट बनाने और मैं बातचीत पर के लिए इसे चलाने सकता है अपने आप ही स्क्रिप्ट परियोजना में pastebin कोड पेस्ट करने के बाद, लेकिन वह यह था। इस प्रकार, इसने एक अलग त्रुटि उठाई: We're sorry, a server error occurred. Please wait a bit and try again.

+0

समान प्रश्न का अर्थ है: http://stackoverflow.com/questions/30129676/what-does-service-error-spreadsheets-mean – iAmOren

उत्तर

1

मार्चेलो, मैंने आज भी एक ही समस्या में भाग लिया है और इसे यहां प्राप्त करने का उत्तर मिला है: https://code.google.com/p/google-apps-script-issues/issues/detail?id=3815 (देखें # 4)। विचार है कि शीट के नीचे पंक्तियां जोड़ना जो स्क्रिप्ट को फिर से काम करना शुरू कर देगा। यह मेरे मामले में काम करता है।

+0

धन्यवाद, लेकिन यह केवल एक समाधान के रूप में काम करेगा। मैंने यह पता लगाया कि वास्तविक समस्या InsertImage विधि को कॉल करके होती है, लेकिन समस्या फ्लश कॉल पर "विस्फोट" समाप्त होती है, पता नहीं क्यों। –

+0

यह मेरे मामले के लिए काम किया। संचालन के लिए उपलब्ध [क्रमांकित, श्वेत] पंक्तियों को 'निगरानी' करने की आवश्यकता है। लेकिन त्रुटि शानदार है, हम सर्वरसाइड जावास्क्रिप्ट पर कदम रखा है ... –

0

मेरे मामले में मेरे पास 'गतिशील' श्रेणियों के साथ सूत्र थे, यानी =sum(b2:b), जो मुझे याद है, को नई Google स्प्रेडशीट में समस्याओं का दुरुपयोग के रूप में वर्णित किया गया था।

sum(b2:b22) पर सुधार (यह सुनिश्चित करना कि सीमा शीट की अंतिम पंक्ति से अधिक न हो) समस्या हल हो गई है।

0

मेरे मामले में मुझे यह त्रुटि मिलती है क्योंकि मैं स्प्रेडशीट पर केवल 1 9 वर्ष की उम्र के साथ 25 कॉलम की एक श्रृंखला के साथ अपने डेटा को सॉर्ट करने के लिए एक और स्प्रेडशीट पूछ रहा था।

मेरे ज्ञान में मैंने सोचा कि मैं अनुशंसित कॉलम को हटाकर स्प्रैडशीट को साफ कर दूंगा, जब मैंने स्क्रिप्ट लिखी थी, तो GetLastColumn का उपयोग करने के बजाय 25 कॉलम सॉर्ट करने के लिए - मुझे क्यों न पूछें।

2

मुझे पसंद है कि एलोकी ने क्या कहा - मैं (अनजाने में) एक ही समस्या थी। मैं (8) range.sort करने की कोशिश कर रहा था, लेकिन सीमा इकट्ठा करने के लिए, मैं प्रयोग किया है:

sheet.getRange(2,1,sheet.getMaxRows(), sheet.getMaxColumns()); 

लेकिन क्या मैं का इस्तेमाल किया है चाहिए था:

sheet.getRange(2, 1, sheet.getMaxRows()-1, sheet.getMaxColumns()); 

त्रुटि संदेश, के रूप में 5/1/2015, अभी भी बहुत ही गुप्त है और "सेवा त्रुटि: स्प्रेडशीट्स" की तुलना में कोई और विवरण प्रदान नहीं करता है।

0

मेरे पास एक ही समस्या है क्योंकि एलोकी ने उल्लेख किया है: सूत्र में गतिशील रेंज। मेरे मामले में मैं अपने कॉलम शीर्षक, सेल बी 7 के बाद पहला सेल प्राप्त करने के लिए =INDEX(B7:B,1) का उपयोग कर रहा था। मैं इसका उपयोग कर रहा था, क्योंकि मैं एक नया सेल डालने के लिए एक क्रिप्ट का उपयोग करता हूं, जो सभी वास्तविक डेटा को नीचे स्थानांतरित करता है, इसलिए मुझे सेल को स्थानांतरित करने के बावजूद, दूसरे सेल में पहली पंक्ति मान प्राप्त करने की आवश्यकता है। मैं संदर्भ के लिए यह गतिशील

  • CHARACTER(COLUMN()+64) स्तंभ अक्षर देना एक =INDIRECT(CONCATENATE(CHARACTER(COLUMN()+64);ROW()+4)) के लिए इसे बदल। =INDEX(B7:B,1) को प्रतिस्थापित करना B
  • ROW()+4 मुझे पंक्ति संख्या जो मैं चाहता हूं, मुझे 4 सूत्रों के तहत इस सूत्र को रखा गया है। =INDEX(B7:B,1) जगह 7
संबंधित मुद्दे