Google Dokümanlar'ın kapsamını genişletme

Google Apps Komut Dosyası, programlı bir şekilde Google Dokümanları oluşturmanıza ve değiştirmenize, ayrıca kullanıcı arayüzünü yeni menüler, iletişim kutuları ve kenar çubuklarıyla özelleştirmenize olanak tanır.

Temel bilgiler

Apps Komut Dosyası, Google Dokümanlar ile iki kapsamlı şekilde etkileşimde bulunabilir: herhangi bir komut dosyası, kullanıcının doküman için uygun izinlere sahip olması durumunda bir dokümanı oluşturabilir veya değiştirebilir. Ayrıca bir komut dosyası, dokümana bağlanabilir. Bu da komut dosyasına, kullanıcı arayüzünü değiştirme veya doküman açıldığında yanıt verme özellikleri sunar. Google Dokümanlar içinden kapsayıcıya bağlı bir komut dosyası oluşturmak için Uzantılar > Apps Komut Dosyası'nı tıklayın.

Her iki durumda da aşağıdaki örnekte gösterildiği gibi, Apps Komut Dosyası'nın Belge Hizmeti üzerinden bir Google Dokümanı ile kolayca etkileşim kurabilirsiniz.

function createDoc() {
  var doc = DocumentApp.create('Sample Document');
  var body = doc.getBody();
  var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
  body.insertParagraph(0, doc.getName())
      .setHeading(DocumentApp.ParagraphHeading.HEADING1);
  table = body.appendTable(rowsData);
  table.getRow(0).editAsText().setBold(true);
}

Yukarıdaki komut dosyası, kullanıcının Google Drive'ında yeni bir doküman oluşturur, ardından dokümanın adıyla aynı metni içeren bir paragrafı, başlık olarak paragraf oluşturan stilleri içeren ve iki boyutlu dizideki değerleri temel alan bir tablo ekler. Komut dosyası, DocumentApp.create() çağrısını DocumentApp.openById() veya openByUrl() ile değiştirerek bu değişiklikleri mevcut bir dokümanda da aynı şekilde kolayca yapabilir. Bir belge içinde (kapsayıcıya bağlı) oluşturulan komut dosyaları için DocumentApp.getActiveDocument() değerini kullanın.

Bir dokümanın yapısı

Apps Komut Dosyası'nın bakış açısından, Google Dokümanlar dosyaları HTML dokümanına benzer şekilde yapılandırılmıştır. Yani, Google Dokümanlar dosyaları genellikle başka öğeler içeren öğelerden (Paragraph veya Table gibi) oluşur. Google Dokümanında değişiklik yapan çoğu komut dosyası, getBody() çağrısıyla başlar. Bunun nedeni, Body öğesinin HeaderSection, FooterSection ve Footnotes dışındaki tüm öğeleri içeren ana öğe olmasıdır.

Ancak hangi öğe türlerinin diğer türleri içerebileceğiyle ilgili kurallar vardır. Ayrıca, Apps Komut Dosyası'ndaki Belge Hizmeti yalnızca belirli öğe türlerini ekleyebilir. Aşağıdaki ağaç, belirli bir öğe türünün hangi öğeleri içerebileceğini göstermektedir.

Kalın yazı tipiyle gösterilen öğeler eklenebilir. Kalın olmayan öğeler yalnızca yerinde değiştirilebilir.

Metin değiştiriliyor

Apps Komut Dosyası, genellikle Google Dokümanlar'da metin değiştirmek için kullanılır. Müşteri bilgileriyle dolu bir e-tablonuz olduğunu ve her müşteri için kişiselleştirilmiş bir Google Dokümanı oluşturmak istediğinizi varsayalım. (Bu tür bir işlem genellikle posta birleştirme olarak adlandırılır.)

Metni değiştirmenin birçok yolu vardır ancak en basit yöntem, aşağıdaki örnekte gösterilen replaceText() yöntemidir. replaceText, JavaScript'in normal ifade özelliklerinin çoğunu destekler. Aşağıdaki ilk işlev, bir Google Dokümanlar dosyasına birkaç satır yer tutucu metni ekler; gerçek dünyada, yer tutucuları dokümana kendiniz yazma olasılığınız daha yüksektir. İkinci işlev, yer tutucuları client nesnesinde tanımlanan özelliklerle değiştirir.

Her iki işlevin de yalnızca bir Google Dokümanı içinde oluşturulan komut dosyaları için geçerli olan getActiveDocument() yöntemini kullandığını unutmayın. Bağımsız bir komut dosyasında bunun yerine DocumentApp.create(), openById() veya openByUrl() yöntemini kullanın.

Birkaç yer tutucu ekleyin

function createPlaceholders() {
  var body = DocumentApp.getActiveDocument().getBody();
  body.appendParagraph('{name}');
  body.appendParagraph('{address}');
  body.appendParagraph('{city} {state} {zip}');
}

Yer tutucuları değiştirme

function searchAndReplace() {
  var body = DocumentApp.getActiveDocument()
      .getBody();
  var client = {
    name: 'Joe Script-Guru',
    address: '100 Script Rd',
    city: 'Scriptville',
    state: 'GA',
    zip: 94043
  };

  body.replaceText('{name}', client.name);
  body.replaceText('{address}', client.address);
  body.replaceText('{city}', client.city);
  body.replaceText('{state}', client.state);
  body.replaceText('{zip}', client.zip);
}

Özel menüler ve kullanıcı arayüzleri

Menüler, iletişim kutuları ve kenar çubukları ekleyerek Google Dokümanlar'ı özelleştirebilirsiniz. Bununla birlikte, bir komut dosyasının yalnızca açık bir dokümanın geçerli örneği için kullanıcı arayüzüyle etkileşimde bulunabileceğini ve yalnızca komut dosyasının dokümana bağlı olması durumunda etkileşimde bulunabileceğini unutmayın.

Google Dokümanlarınıza nasıl özel menü ve iletişim kutusu ekleyeceğinizi öğrenin. İletişim kutuları veya kenar çubuğu için özel arayüzler oluşturma hakkında daha fazla bilgi edinmek için HTML Hizmeti kılavuzuna göz atın. Özel arayüzünüzü bir eklentinin parçası olarak yayınlamayı planlıyorsanız Google Dokümanlar düzenleyicisinin stili ve düzeniyle tutarlılık için stil kılavuzunu takip edin.

Google Dokümanlar için eklentiler

Eklentiler Google Dokümanlar'ın içinde çalışır ve Google Dokümanlar eklenti mağazasından yüklenebilir. Google Dokümanlar için bir komut dosyası geliştirdiyseniz ve bunu dünyayla paylaşmak istiyorsanız Apps Komut Dosyası, diğer kullanıcıların eklenti mağazasından yükleyebilmesi için komut dosyanızı eklenti olarak publish olanak tanır.

Google Dokümanlar eklentilerini nasıl oluşturacağınızı öğrenmek için Dokümanlar eklentileri oluşturma hızlı başlangıç kılavuzu sayfasına göz atın.

Tetikleyiciler

Bir Google Dokümanı'na bağlı komut dosyaları, dokümanın onOpen etkinliğine yanıt vermek için basit bir tetikleyici kullanabilir. Bu etkinlik, dokümana düzenleme erişimi olan bir kullanıcı dokümanı Google Dokümanlar'da açtığında gerçekleşir.

Tetikleyiciyi ayarlamak için onOpen() adlı bir işlev yazmanız yeterlidir. Bu tetikleyicinin bir örneği için Google Workspace'teki özel menüler bölümünü inceleyin. Basit tetikleyici menüleri eklemek için kullanışlı olsa da yetkilendirme gerektiren Apps Komut Dosyası hizmetlerini kullanamaz.