मैं केवल जावास्क्रिप्ट के साथ Google शीट स्प्रेडशीट का उपयोग कैसे कर सकता हूं?


101

मैं केवल जावास्क्रिप्ट का उपयोग करके Google स्प्रेडशीट का उपयोग करना चाहता हूं (कोई .NET, C #, जावा, आदि)

मैं यहां आया और यह जानकर चौंक गया कि Google शीट्स तक पहुंचने के लिए जावास्क्रिप्ट के लिए कोई एपीआई नहीं है।

कृपया मुझे बताएं कि जावास्क्रिप्ट या इसके किसी भी फ्रेमवर्क जैसे jQuery का उपयोग करके Google CREATE (सृजन / EDIT / DELETE) का उपयोग कैसे करें।


1
आपके द्वारा दिए गए लिंक में JSON का उपयोग करने के बारे में जानकारी है। आपको जावास्क्रिप्ट में इसका उपयोग करने में सक्षम होना चाहिए।
जीएसटीओ

1
@GSto यह मददगार होगा अगर u मुझे इस बारे में कुछ जानकारी दे सके। मुझे फिर से u u मैं javascript.Thanks के जरिए google स्प्रेडशीट एक्सेस करना चाहते हैं।
प्रात

1
यह पूर्ण ट्यूटोरियल डेवलपर्स है।
www.sheets

शीत्सु के उपयोग पर विचार करना चाह सकते हैं। यह JSON एपीआई के लिए काफी सरल है और मुफ्त संस्करण के साथ सीमित है, लेकिन यह वास्तव में सरल करता है कि Google स्प्रेडशीट का उपयोग करने के लिए किसी भी देव को क्या चाहिए। उम्मीद है कि यह कुछ लोगों को मदद करता है।
जेस्टर

जवाबों:


60

मैंने एक साधारण जावास्क्रिप्ट लाइब्रेरी बनाई है जो JSON एप के माध्यम से Google स्प्रेडशीट डेटा (यदि वे प्रकाशित होते हैं) को पुनः प्राप्त करता है:

https://github.com/mikeymckay/google-spreadsheet-javascript

आप इसे यहां कार्रवाई में देख सकते हैं:

http://mikeymckay.github.com/google-spreadsheet-javascript/sample.html


3
इससे मेरा एक टन बच गया। आपको बहुत - बहुत धन्यवाद! हालाँकि, मैंने आपका कोड कांटा, डेटा की खाली कोशिकाओं को संभालने में सक्षम होने का फैसला किया, और इसे भी पंक्तियों में व्यवस्थित किया (जैसा कि डेटा लौटाया जा रहा है, यह सिर्फ कोशिकाओं का एक विशाल सरणी है, लेकिन चूंकि खाली सेल नहीं हो रहे थे ध्यान में रखा गया, डेटा को व्यवस्थित करने का कोई आसान तरीका नहीं था)। अद्यतन सिर्फ आपके 'कॉलबैक कॉल ()' विधि के लिए था। इसे देखें: github.com/rw3iss/google-spreadsheet-javascript.git धन्यवाद फिर से आदमी!
रयान वीस

5
इवान प्लाइस के उत्तर stackoverflow.com/a/8666573/42082 में आधिकारिक Google डॉक्स एपीआई और स्प्रेडशीट एक का उपयोग कैसे करें के बारे में अधिक विस्तृत जानकारी है। देखने लायक।
एप-इनोगो

नया संस्करण API 3.0 और Oauth 2.0
प्रीग्टनटनकोजेरो कैब्रोन

लगता है कि Google ने नीति बदल दी है और यह अब टूट गया है।
चिराग

50

जनवरी 2018 अद्यतन : जब मैंने पिछले साल इस प्रश्न का उत्तर दिया था, तो मैंने Google API को जावास्क्रिप्ट के साथ एक्सेस करने के लिए एक तीसरे तरीके का उल्लेख करने की उपेक्षा की , और जो कि इसके क्लाइंट लाइब्रेरी का उपयोग करते हुए Node.js ऐप्स से होगा , इसलिए मैंने इसे नीचे जोड़ा।

यह मार्च 2017 है , और यहां अधिकांश उत्तर पुराने हैं - स्वीकृत उत्तर अब एक पुस्तकालय को संदर्भित करता है जो पुराने एपीआई संस्करण का उपयोग करता है। एक अधिक वर्तमान उत्तर: आप केवल जावास्क्रिप्ट के साथ अधिकांश Google एपीआई का उपयोग कर सकते हैं । Google आज ऐसा करने के लिए 3 तरीके प्रदान करता है:

  1. जैसा कि डान डैस्कलेस्कु के उत्तर में बताया गया है , आप Google Apps Script , जावास्क्रिप्ट-इन- गूगल -क्लाउड समाधान का उपयोग कर सकते हैं। यानी, Google सर्वर पर चलने वाले ब्राउज़र के बाहर गैर-नोड सर्वर-साइड JS ऐप्स।
  2. आप क्लाइंट के लिए नवीनतम Google शीट रीस्ट एपीआई तक पहुंचने के लिए जावास्क्रिप्ट के लिए Google एपीआई क्लाइंट लाइब्रेरी का उपयोग भी कर सकते हैं ।
  3. Google API को जावास्क्रिप्ट के साथ एक्सेस करने का तीसरा तरीका Node.js ऐप्स से है जो अपने क्लाइंट लाइब्रेरी का उपयोग कर रहा है । यह केवल ऊपर वर्णित जावास्क्रिप्ट (क्लाइंट) क्लाइंट लाइब्रेरी का उपयोग करने के लिए समान रूप से काम करता है, केवल आप उसी एपीआई को सर्वर-साइड से एक्सेस कर रहे होंगे। यहाँ शीट के लिए Node.js क्विकस्टार्ट उदाहरण है। आप पायथन-आधारित वीडियो को और भी अधिक उपयोगी मान सकते हैं क्योंकि वे सर्वर-साइड से API तक पहुंचते हैं।

REST API का उपयोग करते समय, आपको अपने स्रोत कोड को प्रबंधित करने और संग्रहीत करने की आवश्यकता होती है और साथ ही अपने स्वयं के कोड को रोल करके प्राधिकरण देखें (नमूने देखें)। एप्स स्क्रिप्ट आपकी ओर से इसे संभालती है, डेटा का प्रबंधन करती है ( उनके जवाब में एप-इनैगो द्वारा उल्लिखित "दर्द" को कम करती है ), और आपका कोड Google के सर्वर पर संग्रहीत होता है। लेकिन आपकी कार्यक्षमता केवल उन सेवाओं तक ही सीमित है, जो ऐप स्क्रिप्ट प्रदान करती है, जबकि REST API डेवलपर्स को API की अधिक व्यापक पहुंच प्रदान करती है। लेकिन हे, यह पसंद है अच्छा है, है ना? सारांश में, ओपी मूल प्रश्न का उत्तर देने के लिए, शून्य के बजाय, डेवलपर्स के पास जावास्क्रिप्ट का उपयोग करके Google शीट तक पहुंचने के तीन तरीके हैं।


35

यहाँ Gist है।

आप Google पत्रक API का उपयोग करके एक स्प्रेडशीट बना सकते हैं । वर्तमान में एपीआई (प्रलेखन पढ़ें) का उपयोग करके स्प्रेडशीट को हटाने का कोई तरीका नहीं है। दस्तावेज़ बनाने और देखने के मार्ग के रूप में Google डॉक्स API के बारे में सोचें।

आप वर्कशीट पर आधारित फीड्स का उपयोग करके वर्कशीट के भीतर वर्कशीट जोड़ / हटा सकते हैं ।

स्प्रेडशीट को अपडेट करना सूची आधारित फ़ीड या सेल आधारित फ़ीड के माध्यम से किया जाता है ।

स्प्रेडशीट को पढ़ने के लिए या तो ऊपर उल्लिखित Google स्प्रेडशीट एपीआई के माध्यम से या केवल प्रकाशित शीट्स के लिए , डेटा को क्वेरी करने के लिए Google विज़ुअलाइज़ेशन एपीआई क्वेरी भाषा का उपयोग करके किया जा सकता है (जो CSV, JSON, या HTML तालिका प्रारूप में परिणाम लौटा सकता है)।


JQuery को भूल जाओ। यदि आप DOM को ट्रेस कर रहे हैं तो jQuery वास्तव में केवल मूल्यवान है। चूंकि GAS (Google Apps Scripting) DOM jQuery का उपयोग नहीं करता है, इसलिए आपके कोड का कोई मूल्य नहीं होगा। वेनिला से चिपके रहते हैं।

मैं वास्तव में हैरान हूं कि किसी ने भी एक जवाब में यह जानकारी नहीं दी है। इतना ही नहीं कर सकते हैं इसे किया जा है, लेकिन यह अपेक्षाकृत आसान वेनिला जे एस का उपयोग कर ऐसा करने के लिए है। Google विज़ुअलाइज़ेशन API का एकमात्र अपवाद है जो अपेक्षाकृत नया है (2011 के अनुसार)। विज़ुअलाइज़ेशन एपीआई भी विशेष रूप से एक HTTP क्वेरी स्ट्रिंग URI के माध्यम से काम करता है।


13

वहाँ एक समाधान है कि स्प्रेडशीट प्रकाशित करने के लिए एक की आवश्यकता नहीं है। हालाँकि, शीट को 'साझा' करने की आवश्यकता है। अधिक विशेष रूप से, शीट को एक तरीके से साझा करने की आवश्यकता होती है जहां लिंक वाला कोई भी स्प्रेडशीट तक पहुंच सकता है। एक बार यह पूरा हो जाने के बाद, Google शीट्स HTTP एपीआई का उपयोग कर सकता है।

सबसे पहले, आपको Google API कुंजी की आवश्यकता है। यहाँ प्रमुख: https://developers.google.com/places/web-service/get-api-key NB। कृपया जनता को उपलब्ध कराई जाने वाली एक एपीआई कुंजी के सुरक्षा प्रभाव के बारे में पता करें: https://support.google.com/googleapi/answer/6310037

स्प्रेडशीट के लिए सभी डेटा प्राप्त करें - चेतावनी, यह बहुत अधिक डेटा हो सकता है।

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true

शीट मेटाडेटा प्राप्त करें

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}

कोशिकाओं की एक श्रृंखला प्राप्त करें

https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{sheetName}!{cellRange}?key={yourAPIKey}

अब इस जानकारी से लैस, कोई AJAX का उपयोग डेटा पुनः प्राप्त करने के लिए कर सकता है और फिर इसे जावास्क्रिप्ट में हेरफेर कर सकता है। मैं axios का उपयोग करने की सलाह दूंगा

var url = "https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/?key={yourAPIKey}&includeGridData=true";                                                             
axios.get(url)
  .then(function (response) {
    console.log(response);                                                                                                                                                    
  })
  .catch(function (error) {
    console.log(error);                                                                                                                                                       
  });                

ग्रिड डेटा क्या है?
विलियम एंट्रिएन

@WilliamEntriken कक्षों की सामग्री।
रोजस्को

11

2016 का अपडेट : सबसे आसान तरीका है Google Apps Script API, विशेष रूप से स्प्रेडशीट सेवा का उपयोग करना । यह निजी पत्रक के लिए काम करता है, अन्य उत्तरों के विपरीत जिन्हें स्प्रेडशीट प्रकाशित करने की आवश्यकता होती है।

यह आपको जावास्क्रिप्ट कोड को Google शीट से बाँध देगा, और शीट के खुलने पर, या जब कोई मेनू आइटम (जिसे आप परिभाषित कर सकते हैं) चुना गया है, तब इसे निष्पादित करेंगे।

यहां क्विकस्टार्ट / डेमो दिया गया है । कोड इस तरह दिखता है:

// Let's say you have a sheet of First, Last, email and you want to return the email of the
// row the user has placed the cursor on.
function getActiveEmail() {
  var activeSheet = SpreadsheetApp.getActiveSheet();
  var activeRow = .getActiveCell().getRow();
  var email = activeSheet.getRange(activeRow, 3).getValue();

  return email;
}

आप इस तरह की स्क्रिप्ट को वेब ऐप के रूप में भी प्रकाशित कर सकते हैं


6

संपादित करें: यह उत्तर दिया गया था इससे पहले कि Google डॉक्स की एपीआई जारी की गई थी। अधिक अप-टू-डेट जानकारीके लिए इवान प्लाइस का उत्तर और डैन डैस्कलेस्कु का उत्तर देखें।

यह आपको लग सकता है, लेकिन यह उपयोग करने के लिए एक दर्द है। इसमें Google डेटा API का उपयोग करना शामिल है।

http://gdatatips.blogspot.com/2008/12/using-javascript-client-library-w-non.html

"जावास्क्रिप्ट क्लाइंट लाइब्रेरी में कैलेंडर, संपर्क, ब्लॉगर और Google वित्त के लिए सहायक विधियाँ हैं। हालाँकि, आप इसे किसी भी Google डेटा API के साथ प्रमाणित / निजी फ़ीड्स तक पहुँचने के लिए उपयोग कर सकते हैं। यह उदाहरण DocList API का उपयोग करता है।"

और स्प्रेडशीट के साथ इंटरफेस करने वाले गैजेट को लिखने का एक उदाहरण: http://code.google.com/apis/spreadsheets/gadgets/


आप इसे "दर्द" क्यों कहते हैं। ऐसा करने में क्या नुकसान हैं?
प्रतिक डिक

1
एक दर्द क्योंकि इसमें एक देशी एपीआई नहीं है, जिसका अर्थ है कि आपको बहुत अधिक पार्स करने और डेटा हेरफेर करने की आवश्यकता है। एक मूल स्प्रेडशीट एपी आपके लिए ये प्रदान करेगा।
एपे-इनोगो

4

'Google डॉक्स तक पहुँचने' जावास्क्रिप्ट को लागू करने के लिए थकाऊ होगा और इसके अलावा Google प्रलेखन भी इसे प्राप्त करने के लिए सरल नहीं है। मेरे पास साझा करने के लिए कुछ अच्छे लिंक हैं जिनके द्वारा आप gdoc तक js पहुँच प्राप्त कर सकते हैं:

http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#UploadingDocs

http://code.google.com/apis/spreadsheets/gadgets/

http://code.google.com/apis/gdata/docs/js.html

http://www.mail-archive.com/google-help-dataapi@googlegroups.com/msg01924.html

हो सकता है ये आपकी मदद करें ..


8
लिंक 1 को 20 अप्रैल 2015 को
निकाला

2

क्षमा करें, यह एक घटिया उत्तर है। जाहिर तौर पर यह एक मुद्दा रहा है लगभग दो वर्षों के लिए रहा है ताकि आपकी सांस न चले।

यहाँ आधिकारिक अनुरोध है कि आप "स्टार" कर सकते हैं

संभवतः आप जो निकटतम आ सकते हैं, वह Google App Engine / Python के साथ आपकी स्वयं की सेवा को रोल कर रहा है और आपके जेएस लाइब्रेरी के साथ आपको जो भी सबसेट चाहिए, उसे उजागर कर रहा है। हालांकि मैं खुद एक बेहतर समाधान लेना पसंद करूंगा।


2

इस तेजी से बदलती दुनिया में इनमें से अधिकांश लिंक मोटे हैं।

अब आप Google डिस्क वेब API का उपयोग कर सकते हैं :


ओपी ने विशेष रूप से Google शीट के बारे में पूछा , जिसमें ड्राइव की तुलना में अधिक विशिष्ट एपीआई है।
Dan Dascalescu

ठीक है, यहाँ स्प्रेडशीट सहित Google उत्पादों की पूरी सूची दी गई है (हालांकि मेरी पहली लिंक का उपयोग करके पता लगाना आसान है)
vladkras


1

इस प्रकार की चीजों के लिए आपको Google Fusion Tables का उपयोग करना चाहिए । एपीआई उस उद्देश्य के लिए बनाया गया है।


अच्छा विचार नहीं। Google इसे बंद करने जा रहा है। इसे नीचा दिखाना।
a_01

1

आप RGraph चादर कनेक्टर का उपयोग करके जावास्क्रिप्ट में Google पत्रक स्प्रेडशीट डेटा पढ़ सकते हैं:

https://www.rgraph.net/canvas/docs/import-data-from-google-sheets.html

प्रारंभ में (कुछ साल पहले) यह अपने जादू को काम करने के लिए कुछ RGraph कार्यों पर निर्भर था - लेकिन अब यह स्टैंडअलोन (यानी RGraph आम पुस्तकालय की आवश्यकता नहीं) काम कर सकता है ।

कुछ उदाहरण कोड (यह उदाहरण एक RGraph चार्ट बनाता है):

<!-- Include the sheets library -->
<script src="RGraph.common.sheets.js"></script>

<!-- Include these two RGraph libraries to make the chart -->
<script src="RGraph.common.key.js"></script>
<script src="RGraph.bar.js"></script>

<script>
    // Create a new RGraph Sheets object using the spreadsheet's key and
    // the callback function that creates the chart. The RGraph.Sheets object is
    // passed to the callback function as an argument so it doesn't need to be
    // assigned to a variable when it's created
    new RGraph.Sheets('1ncvARBgXaDjzuca9i7Jyep6JTv9kms-bbIzyAxbaT0E', function (sheet)
    {
        // Get the labels from the spreadsheet by retrieving part of the first row
        var labels = sheet.get('A2:A7');

        // Use the column headers (ie the names) as the key
        var key = sheet.get('B1:E1');

        // Get the data from the sheet as the data for the chart
        var data   = [
            sheet.get('B2:E2'), // January
            sheet.get('B3:E3'), // February
            sheet.get('B4:E4'), // March
            sheet.get('B5:E5'), // April
            sheet.get('B6:E6'), // May
            sheet.get('B7:E7')  // June
        ];

        // Create and configure the chart; using the information retrieved above
        // from the spreadsheet
        var bar = new RGraph.Bar({
            id: 'cvs',
            data: data,
            options: {
                backgroundGridVlines: false,
                backgroundGridBorder: false,
                xaxisLabels: labels,
                xaxisLabelsOffsety: 5,
                colors: ['#A8E6CF','#DCEDC1','#FFD3B6','#FFAAA5'],
                shadow: false,
                colorsStroke: 'rgba(0,0,0,0)',
                yaxis: false,
                marginLeft: 40,
                marginBottom: 35,
                marginRight: 40,
                key: key,
                keyBoxed: false,
                keyPosition: 'margin',
                keyTextSize: 12,
                textSize: 12,
                textAccessible: false,
                axesColor: '#aaa'
            }
        }).wave();
    });
</script>

और अब आयात उपयोगिता का एक PHP संस्करण है - एक ही URL पर उपलब्ध
रिचर्ड

0

मैं स्टीन का निर्माण कर रहा हूँ ताकि आप बस ऐसा कर सकें। यह एक HTML केवल समाधान भी प्रदान करता है, क्या आपको शीट से सीधे डेटा प्रदर्शित करना चाहिए। इसे steinhq.com पर देखें

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.