Google E-Tablolar'ı genişletme

E-Tablolar'ı genişletmek için Google Apps Komut Dosyası'nı kullanın. E-Tablolar'a özel menüler, iletişim kutuları ve kenar çubukları ekleyin. E-Tablolar için özel işlevler yazın ve Google Takvim, Google Drive ve Gmail gibi diğer Google hizmetleriyle entegre edin.

E-Tablolar için tasarlanan çoğu komut dosyası, e-tablodaki hücreler, satırlar ve sütunlarla etkileşim kurmak için dizileri kullanır. JavaScript'teki diziler hakkında bilginiz yoksa Codecademy'nin dizilerle ilgili mükemmel bir eğitim modülünden yararlanabilirsiniz. Bu kurs Google tarafından geliştirilmedi ve Google ile ilişkili değil.

Apps Komut Dosyası'nı E-Tablolar ile kullanmaya hızlıca başlamak için Makrolar, Menüler ve Özel İşlevler ile ilgili 5 dakikalık hızlı başlangıç kılavuzuna göz atın.

Başlayın

Apps Komut Dosyası, E-Tabloları programatik olarak oluşturmak, okumak ve düzenlemek için özel API'ler içerir. Apps Komut Dosyası, E-Tablolar ile iki şekilde etkileşime girer: Komut dosyasının kullanıcısı uygun izinlere sahipse herhangi bir komut dosyası bir e-tablo oluşturabilir veya değiştirebilir. Ayrıca bir komut dosyası, e-tabloya bağlanabilir. Bağlı komut dosyaları, kullanıcı arayüzünü değiştirme veya e-tablo açıldığında yanıt verme gibi özel yeteneklere sahiptir. Bağlı komut dosyası oluşturmak için E-Tablolar'da Uzantılar > Apps Komut Dosyası'nı seçin.

E-tablo hizmeti, E-Tabloları iki boyutlu dizilerle çalışan bir ızgara olarak ele alır. E-tablodan veri almak için verilerin depolandığı e-tabloya erişin, verileri içeren aralığı alın ve ardından hücrelerin değerlerini alın. Apps Komut Dosyası, e-tablodaki yapılandırılmış verileri okuyarak ve bunlar için JavaScript nesneleri oluşturarak verilere erişimi kolaylaştırır.

Verileri okuma

Aşağıdaki resimde gösterildiği gibi, bir e-tabloda sakladığınız ürün adları ve ürün numaraları listesi olduğunu varsayalım.

Aşağıdaki örnekte, ürün adlarının ve ürün numaralarının nasıl alınacağı ve günlüğe kaydedileceği gösterilmektedir.

function logProductInfo() {
  const sheet = SpreadsheetApp.getActiveSheet();
  const data = sheet.getDataRange().getValues();
  for (let i = 0; i < data.length; i++) {
    Logger.log('Product name: ' + data[i][0]);
    Logger.log('Product number: ' + data[i][1]);
  }
}

Günlükleri göster

Günlüğe kaydedilen verileri görüntülemek için komut dosyası düzenleyicisinin üst kısmındaki Yürütme günlüğü'nü tıklayın.

Verileri yazma

E-tabloya yeni ürün adı ve numarası gibi verileri depolamak için aşağıdaki kodu komut dosyasının sonuna ekleyin.

function addProduct() {
  const sheet = SpreadsheetApp.getActiveSheet();
  sheet.appendRow(['Cotton Sweatshirt XL', 'css004']);
}

Yukarıdaki kod, belirtilen değerlerle e-tablonun en altına yeni bir satır ekler. Bu işlevi çalıştırırsanız e-tabloya yeni bir satır eklenir.

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

Özel menüler, iletişim kutuları ve kenar çubukları ekleyerek E-Tablolar'ı özelleştirin. Menü oluşturma konusunda temel bilgileri öğrenmek için menü kılavuzuna bakın. Bir iletişim kutusunun içeriğini özelleştirme hakkında bilgi edinmek için HTML hizmeti kılavuzuna bakın.

Bir e-tablodaki resme veya çizime komut dosyası işlevi ekleyin. İşlev, kullanıcı resmi veya çizimi tıkladığında yürütülür. Daha fazla bilgi edinmek için E-Tablolar'da Görseller ve Çizimler başlıklı makaleyi inceleyin.

Özel arayüzünüzü bir eklenti olarak yayınlamayı planlıyorsanız E-Tablolar düzenleyicisinin stili ve düzeniyle tutarlılık için stil kılavuzunu uygulayın.

Google Formlar'a bağlanma

Formlar ve E-Tablolar hizmetlerini kullanarak Google Formlar'ı E-Tablolar'a bağlayın. Bu özellik, e-tablodaki verilere göre otomatik olarak bir Google Formu oluşturur. Apps Komut Dosyası, kullanıcının forma yanıt vermesinden sonra belirli bir işlemi gerçekleştirmek için tetikleyiciler (ör. onFormSubmit) kullanmanıza da olanak tanır. E-tabloları Formlar'a bağlama hakkında daha fazla bilgi edinmek için 5 dakikalık Formlar İçin Yanıtları Yönetme hızlı başlangıç kılavuzunu deneyin.

Verileri biçimlendirme

Range sınıfı, bir hücrenin veya hücre aralığının biçimine erişmek ve bu biçimi değiştirmek için setBackground gibi yöntemlere sahiptir. Aşağıdaki örnekte bir aralığın yazı tipi stili ayarlanmaktadır:

function formatMySpreadsheet() {
  // Set the font style of the cells in the range of B2:C2 to be italic.
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheets()[0];
  const cell = sheet.getRange('B2:C2');
  cell.setFontStyle('italic');
}

Veri doğrulama

E-Tablolar'daki mevcut veri doğrulama kurallarına erişin veya yeni kurallar oluşturun. Örneğin, aşağıdaki örnekte bir hücrede yalnızca 1 ile 100 arasındaki sayılara izin veren bir veri doğrulama kuralının nasıl ayarlanacağı gösterilmektedir.

function validateMySpreadsheet() {
  // Set a rule for the cell B4 to be a number between 1 and 100.
  const cell = SpreadsheetApp.getActive().getRange('B4');
  const rule = SpreadsheetApp.newDataValidation()
     .requireNumberBetween(1, 100)
     .setAllowInvalid(false)
     .setHelpText('Number must be between 1 and 100.')
     .build();
  cell.setDataValidation(rule);
}

Veri doğrulama kurallarıyla çalışma hakkında daha fazla bilgi için SpreadsheetApp.newDataValidation, DataValidationBuilder ve Range.setDataValidation bölümlerine bakın.

Grafikler

Belirli bir aralıktaki verileri temsil eden grafikleri e-tabloya yerleştirin. Aşağıdaki örnekte, A1:B15 hücrelerinde grafik oluşturulabilir veriler olduğu varsayılarak yerleştirilmiş bir çubuk grafik oluşturuluyor:

function newChart() {
  // Generate a chart representing the data in the range of A1:B15.
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = ss.getSheets()[0];

  const chart = sheet.newChart()
     .setChartType(Charts.ChartType.BAR)
     .addRange(sheet.getRange('A1:B15'))
     .setPosition(5, 5, 0, 0)
     .build();

  sheet.insertChart(chart);
}

E-tablonuza grafik yerleştirme hakkında daha fazla bilgi edinmek için EmbeddedChart ve EmbeddedPieChartBuilder gibi belirli grafik oluşturuculara bakın.

Google E-Tablolar'daki özel işlevler

Özel işlevler, =SUM(A1:A5) gibi yerleşik e-tablo işlevlerine benzer ancak işlevin davranışını Apps Komut Dosyası ile tanımlarsınız. Örneğin, bir değeri inçten milimetreye dönüştüren bir özel fonksiyon (in2mm()) oluşturabilir, ardından bir hücreye =in2mm(A1) veya =in2mm(10) yazarak formülü e-tablonuzda kullanabilirsiniz.

Özel işlevler hakkında daha fazla bilgi edinmek için 5 dakikalık Menüler ve Özel İşlevler hızlı başlangıç kılavuzunu deneyin veya daha ayrıntılı özel işlevler kılavuzuna göz atın.

Makrolar

Makrolar, Apps Komut Dosyası kodunu E-Tablolar kullanıcı arayüzünden yürütmenin başka bir yoludur. Özel işlevlerden farklı olarak, bunları klavye kısayoluyla veya E-Tablolar menüsünden etkinleştirirsiniz. Daha fazla bilgi için E-Tablolar Makroları bölümünü inceleyin.

Google E-Tablolar için eklentiler

Eklentiler, E-Tablolar'da çalışan ve E-Tablolar eklenti mağazasından yüklenebilen özel olarak paketlenmiş Apps Komut Dosyası projeleridir. E-Tablolar için bir komut dosyası geliştirdiyseniz ve bunu paylaşmak istiyorsanız Apps Komut Dosyası, komut dosyanızı eklenti olarak yayınlamanıza olanak tanır. Böylece diğer kullanıcılar bu komut dosyasını yükleyebilir.

Performans ve ölçeklendirme

Veri kümeleriniz büyüdükçe performans sorunları yaşayabilirsiniz. E-tablonuzu ve komut dosyalarınızı optimize etmek için:

  • En iyi uygulamaları takip edin: Hizmet çağrılarını en aza indirme ve toplu işlemleri kullanma hakkında ipuçları için En İyi Uygulamalar Rehberi'ni okuyun.
  • Formülleri optimize etme: E-tablonuz karmaşık formüller (ör. VLOOKUP, ARRAYFORMULA veya IMPORTRANGE) nedeniyle yavaşlıyorsa bu hesaplamaları bellekte yapmak ve sonuçları toplu olarak geri yazmak için Apps Komut Dosyası'nı kullanabilirsiniz.
  • Veritabanı alternatiflerini değerlendirin: Çok büyük veri kümeleri (10 milyon hücreye yakın) veya yüksek sıklıkta veri girişi (ör. çok sayıda bağlı form) için JDBC kullanan Google Cloud SQL veya BigQuery'yi kullanmayı düşünebilirsiniz.

Tetikleyiciler

Bir E-Tablolar dosyasına bağlı olan komut dosyaları, e-tabloya düzenleme erişimi olan bir kullanıcı e-tabloyu açtığında veya düzenlediğinde otomatik olarak yanıt vermek için onOpen() ve onEdit() gibi işlevler olan basit tetikleyicileri kullanabilir. Yüklenebilir tetikleyiciler, basit tetikleyiciler gibi belirli bir etkinlik gerçekleştiğinde Sheets'in bir işlevi otomatik olarak çalıştırmasına olanak tanır. Ancak yüklenebilir tetikleyiciler, basit tetikleyicilere kıyasla daha fazla esneklik sunar ve şu etkinlikleri destekler: açma, düzenleme, değiştirme, form gönderme ve zamana dayalı (saat).