बेहतर Docs सेवा की मदद से, Apps Script में Google Docs API का इस्तेमाल किया जा सकता है. Apps Script की बिल्ट-इन Docs सेवा की तरह ही, यह एपीआई भी स्क्रिप्ट को Google Docs में कॉन्टेंट को पढ़ने, उसमें बदलाव करने, और फ़ॉर्मैट करने की अनुमति देता है. ज़्यादातर मामलों में, पहले से मौजूद सेवा का इस्तेमाल करना आसान होता है, लेकिन यह बेहतर सेवा कुछ और सुविधाएं भी देती है.
रेफ़रंस
इस सेवा के बारे में ज़्यादा जानकारी के लिए, Docs API के रेफ़रंस दस्तावेज़ देखें. Apps Script की सभी बेहतर सेवाओं की तरह, Docs की बेहतर सेवा में भी उन ही ऑब्जेक्ट, तरीकों, और पैरामीटर का इस्तेमाल किया जाता है जो सार्वजनिक एपीआई में हैं. ज़्यादा जानकारी के लिए, हस्ताक्षर तय करने का तरीका लेख पढ़ें.
समस्याओं की शिकायत करने और अन्य मदद पाने के लिए, Docs API की सहायता गाइड देखें.
नमूना कोड
नीचे दिए गए सैंपल कोड में, एपीआई के वर्शन 1 का इस्तेमाल किया गया है.
दस्तावेज़ बनाएं
यह सैंपल एक नया दस्तावेज़ बनाता है.
टेक्स्ट ढूंढना और बदलना
यह सैंपल, किसी दस्तावेज़ में टेक्स्ट के जोड़ों को ढूंढता है और उन्हें बदलता है. टेंप्लेट दस्तावेज़ की कॉपी में प्लेसहोल्डर को, डेटाबेस की वैल्यू से बदलते समय मदद मिल सकती है.
टेक्स्ट शामिल करना और उसे स्टाइल देना
इस सैंपल में, दस्तावेज़ की शुरुआत में नया टेक्स्ट डाला गया है. साथ ही, अगर उसमें कोई खास फ़ॉन्ट और साइज़
है, तो स्टाइल को भी शामिल किया गया है. ध्यान दें कि जब भी संभव हो, आपको कई कार्रवाइयों को एक साथ एक batchUpdate
कॉल में रखना चाहिए, ताकि बेहतर नतीजे मिल सकें.
पहला पैराग्राफ़ पढ़ें
यह सैंपल, दस्तावेज़ के पहले पैराग्राफ़ के टेक्स्ट को लॉग करता है. Docs API में पैराग्राफ़ का फ़ॉर्मैट एक जैसा होता है. इसलिए, इसमें कई सब-एलिमेंट का टेक्स्ट मिलाना शामिल होता है.
सबसे सही तरीके
बैच अपडेट
बेहतर Docs सेवा का इस्तेमाल करते समय, batchUpdate
को लूप में कॉल करने के बजाय, एक से ज़्यादा अनुरोधों को एक ही कलेक्शन में जोड़ें.
ऐसा न करें — batchUpdate
को लूप में कॉल करें.
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
Docs.Documents.batchUpdate({
requests: [{
replaceAllText: ...
}]
}, docId);
}
ऐसा करें — कई तरह के अपडेट के साथ batchUpdate
को कॉल करें.
var requests = [];
var textToReplace = ['foo', 'bar'];
for (var i = 0; i < textToReplace.length; i++) {
requests.push({ replaceAllText: ... });
}
Docs.Documents.batchUpdate({
requests: requests
}, docId);