Google E-Tablolar ile Apps Komut Dosyasının Temelleri 2: E-Tablolar, E-Tablolar ve Aralıklar

1. Giriş

Google E-Tablolar ile codelab'in oynatma listesinin ikinci bölümüne hoş geldiniz. Komut dosyası düzenleyicisinin, makroların ve özel işlevler kavramlarına odaklanan önceki codelab'de. Bu codelab'de, Google E-Tablolar'da veri okumak, yazmak ve değiştirmek için kullanabileceğiniz E-tablo hizmetine geçilmiştir.

Neler öğreneceksiniz?

  • E-tabloların, e-tabloların ve aralıkların Apps Komut Dosyası'nda nasıl gösterildiği.
  • Etkin (açık) e-tabloya SpreadsheetApp ve Spreadsheet sınıfıyla erişme, oluşturma ve yeniden adlandırma.
  • Sheet sınıfını kullanarak bir e-tablonun adını ve bir aralık/sütun yönünü değiştirme.
  • Range sınıfını kullanarak bir hücre grubunu veya veri aralığını belirtme, etkinleştirme, taşıma ve sıralama.

Başlamadan önce

Bu, Google Apps ile Apps Komut Dosyası'nın Temelleri oynatma listesindeki ikinci codelab'dir. Başlamadan önce ilk codelab'i tamamladığınızdan emin olun: Makrolar ve Özel İşlevler.

Gerekenler

  • Bu oynatma listesinin önceki codelab'inde incelenen temel Apps Komut Dosyası konuları hakkında bilgi edinin.
  • Apps Komut Dosyası düzenleyicisine dair temel bilgi sahibi olma
  • Google E-Tablolar'la ilgili temel bilgi sahibi olma
  • E-Tablolar A1 Gösterimi'ni okuma özelliği
  • JavaScript ve String sınıfı hakkında temel bilgi sahibi olma

Bir sonraki bölümde, E-tablo hizmetinin temel sınıfları açıklanmaktadır.

2. E-tablo hizmetine giriş

E-tablo hizmetinin temelini dört ders oluşturur: SpreadsheetApp, Spreadsheet, Sheet ve Range. Bu bölümde, bu sınıflar ve ne için kullanıldıkları açıklanmaktadır.

spreadsheetApp Sınıfı

E-tabloları, sayfaları ve aralıkları ayrıntılı olarak incelemeden önce üst sınıflarını incelemeniz gerekir: SpreadsheetApp. Birçok komut dosyası, Google E-Tablolar dosyalarınıza ilk erişim noktasını sağlayabileceği için SpreadsheetApp yöntemlerini çağırarak başlar. SpreadsheetApp öğesini, E-tablo hizmetinin ana sınıfı olarak düşünebilirsiniz. SpreadsheetApp sınıfı, burada derinlemesine incelenmiyor. Ancak bu codelab'in ilerleyen bölümlerinde, bu sınıfı anlamanıza yardımcı olacak hem örnekler hem de alıştırmalar bulabilirsiniz.

E-tablolar, e-tablolar ve sınıfları

E-tablo terimi olarak e-tablo, satır ve sütunlara göre düzenlenmiş verileri içeren bir Google E-Tablolar dosyasıdır (Google Drive'da depolanır). E-tabloya bazen "Google Dokümanı", aynı zamanda dokümanın "Google Dokümanı" olarak da adlandırılır.

Google E-Tablolar dosya verilerine erişmek ve bu verilerde değişiklik yapmak için Spreadsheet sınıfını kullanabilirsiniz. Bu sınıfı, ortak çalışan eklemek gibi diğer dosya düzeyindeki işlemler için de kullanabilirsiniz.

f00cc1a9eb606f77.png

Sayfa**, bir e-tablonun tek tek sayfasını temsil eder. Bazen "sekme" olarak da adlandırılır. Her e-tablo bir veya daha fazla sayfa içerebilir. Satır veya veri sütunlarının taşınması gibi sayfa düzeyinde verilere ve ayarlara erişmek ve bu ayarları değiştirmek için Sheet** sınıfını kullanabilirsiniz.

39dbb10f83e3082.png

Özetle, Spreadsheet sınıfı e-tablo koleksiyonunda çalışır ve Google Drive'da bir Google E-Tablolar dosyası tanımlar. Sheet sınıfı, bir e-tablodaki tek tek sayfalarda çalışır.

Aralık sınıfı

Çoğu veri işleme işlemi (örneğin, hücre verilerini okuma, yazma veya biçimlendirme) işlemin hangi hücreler için geçerli olduğunu tanımlamanızı gerektirir. Bir sayfa içindeki belirli hücre gruplarını seçmek için Range sınıfını kullanabilirsiniz. Bu sınıfın örnekleri, bir aralığı (sayfadaki bir veya daha fazla bitişik hücre grubu) temsil eder. Aralıkları satır ve sütun numaralarına göre veya A1 gösterimini kullanarak belirtebilirsiniz.

Codelab'in geri kalanında, bu sınıflarla çalışan komut dosyaları ve bunların yöntemleri gösterilir.

3. Kur

Devam etmeden önce bazı verilerin bulunduğu bir e-tabloya ihtiyacınız var. Sizin için bir resim URL'si sağladık: Veri sayfasını kopyalamak için bu bağlantıyı tıklayın ve ardından Kopya oluştur'u tıklayın.

5376f721894b10d9.png

Kullanabileceğiniz örnek e-tablonun bir kopyası Google Drive klasörünüze yerleştirilir ve “Adsız e-tablonun kopyası” olarak adlandırılır. Bu codelab alıştırmalarını tamamlamak için bu e-tabloyu kullanın.

Uzantılar > Apps Komut Dosyası'nı tıklayarak Google E-Tablolar'da komut dosyası düzenleyiciyi açabileceğinizi hatırlatmak isteriz.

Komut dosyası düzenleyicisinde bir Apps Komut Dosyası projesini ilk kez açtığınızda, komut dosyası düzenleyicisi sizin için hem bir komut dosyası projesi hem de bir komut dosyası dosyası oluşturur.

Sonraki bölümde, bu e-tabloyu iyileştirmek için Spreadsheet sınıfını nasıl kullanacağınız gösterilmektedir.

4. E-tablolara erişme ve e-tablolarda değişiklik yapma

Bu bölümde, e-tablolara erişmek ve e-tablolarda değişiklik yapmak için SpreadsheetApp ve Spreadsheet sınıflarını nasıl kullanacağınızı öğrenebilirsiniz. Alıştırmalar, özellikle bir e-tabloyu nasıl yeniden adlandıracağınızı ve bir e-tablodaki sayfaları nasıl kopyalayacağınızı öğretir.

Bunlar basit işlemlerdir ancak genellikle daha büyük ve karmaşık bir iş akışının parçasıdır. Komut dosyası koduyla bu görevleri nasıl otomatikleştireceğinizi anladıktan sonra, daha ayrıntılı işlemleri nasıl otomatik hale getireceğinizi öğrenmek kolaylaşır.

Etkin e-tabloyu yeniden adlandırma

Varsayılan ad olan "Adsız e-tablonun kopyası"nı e-tablonuzun amacını daha iyi yansıtan bir adla değiştirmek istediğinizi varsayalım. Bunu SpreadsheetApp ve Spreadsheet sınıflarıyla yapabilirsiniz.

  1. Komut dosyası düzenleyicisinde, varsayılan myFunction() kod bloğunu aşağıdaki kodla değiştirin:
function renameSpreadsheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  mySS.rename("2017 Avocado Prices in Portland, Seattle");
}
  1. Komut dosyanızı kaydetmek için Kaydet'i kaydet tıklayın.
  2. Apps Komut Dosyası projenizi yeniden adlandırmak için Adsız proje'yi tıklayıp yeni proje adı olarak "Avocado fiyatları" yazın ve Yeniden adlandır'ı tıklayın.
  3. Komut dosyanızı çalıştırmak için işlevler listesinden renameSpreadsheet'yi seçin ve Çalıştır'ı tıklayın.
  4. Ekrandaki talimatları uygulayarak makroyu yetkilendirin. "Bu uygulama doğrulanmadı" mesajı alırsanız Gelişmiş'i, ardından Avocado fiyatlarına git (güvenli değil) seçeneğini tıklayın. Sonraki ekranda İzin ver'i tıklayın.

İşlev yürütüldüğünde e-tablonuzun dosya adı değişmelidir:

226c7bc3c2fbf33e.png

Girdiğiniz koda göz atalım. getActiveSpreadsheet() yöntemi, etkin e-tabloyu temsil eden bir nesne, yani oluşturduğunuz egzersiz e-tablosunun kopyasını döndürür. Bu e-tablo nesnesi mySS değişkeninde depolanır. mySS adresinde rename(newName) araması Google Drive'daki e-tablo dosyasının adını & Porto, Seattle'da 2017 Avocado Fiyatları olarak değiştiriyor.

mySS değişkeni e-tabloya bir referans olduğundan, tekrar tekrar getActiveSpreadsheet() yerine Spreadsheet yöntemlerini çağırarak kodunuzu daha temiz ve verimli hale getirebilirsiniz.

Etkin sayfayı kopyala

Geçerli e-tablonuzda yalnızca bir sayfa vardır. Sayfanın bir kopyasını oluşturmak için Spreadsheet.duplicateActiveSheet() yöntemini çağırabilirsiniz:

  1. Aşağıdaki yeni işlevi, zaten komut dosyası projenizdeki renameSpreadsheet() işlevinin altına ekleyin:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();
}
  1. Komut dosyası projenizi kaydedin.
  2. Komut dosyanızı çalıştırmak için işlevler listesinden duplicateAndOrganizeActiveSheet'yi seçin ve Çalıştır'ı tıklayın.

E-tablonuza yeni bir "Sayfa_Orijinali" kopyası sekmesi görmek için E-Tablolar'a dönün.

d24f9f4ae20bf7d4.gif

Bu yeni işlevde duplicateActiveSheet() yöntemi, e-tablonuzdaki yinelenen sayfayı oluşturur, etkinleştirir ve döndürür. Elde edilen bu sayfa duplicateSheet içinde depolanıyor ancak kod bu değişkenle henüz bir şey yapmıyor.

Sonraki bölümde, kopya sayfayı yeniden adlandırmak ve biçimlendirmek için Sheet sınıfını kullanacaksınız.

5. Sayfanızı Sayfa sayfası ile biçimlendirme

Sheet sınıfı, komut dosyalarının sayfaları okumasına ve güncellemesine olanak tanıyan yöntemler sunar. Bu bölümde, Sheet sınıfının yöntemleriyle bir sayfanın adını ve sütun genişliklerini nasıl değiştireceğinizi öğrenebilirsiniz.

Sayfanın adını değiştirme

E-tabloları yeniden adlandırmak, renameSpreadsheet() ürününde yer almak kadar basit. Yalnızca tek bir yöntem çağrısı gerekir.

  1. Google E-Tablolar'da etkinleştirmek için Sheet_Original sayfasını tıklayın.
  2. Apps Komut Dosyası'nda, duplicateAndOrganizeActiveSheet() işlevinizi aşağıdakiyle eşleşecek şekilde değiştirin:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());
}
  1. İşlevi kaydedin ve çalıştırın.

Google E-Tablolar'da, işlev çalıştırdığınızda yinelenen bir sayfa oluşturulur ve yeniden adlandırılır:

91295f42354f62e7.gif

Eklenen kodda, setName(name) yöntemi duplicateSheet adının adını değiştirerek e-tablonun benzersiz kimlik numarasını almak için getSheetID() özelliğini kullanır. + operatörü, sayfa kimliğini "Sheet_" dizesinin sonuna birleştirir.

Sayfanın sütunlarını ve satırlarını değiştirme

E-tablonuzu biçimlendirmek için Sheet sınıfını da kullanabilirsiniz. Örneğin, kopya işlevinizin sütunlarını yeniden boyutlandırmak ve dondurulmuş satırlar eklemek için duplicateAndOrganizeActiveSheet() fonksiyonunuzu güncelleyebiliriz:

  1. Google E-Tablolar'da etkinleştirmek için Sheet_Original sayfasını tıklayın.
  2. Apps Komut Dosyası'nda, duplicateAndOrganizeActiveSheet() işlevinizi aşağıdakiyle eşleşecek şekilde değiştirin:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());

  // Format the new sheet.
  duplicateSheet.autoResizeColumns(1, 5);
  duplicateSheet.setFrozenRows(2);
}
  1. İşlevi kaydedin ve çalıştırın.

Google E-Tablolar'da bir kopya sayfa oluşturulur, yeniden adlandırılır, etkinleştirilir ve biçimlendirilir:

257c917ab157d

Eklediğiniz kod, sayfadaki sütunları okunabilirlik açısından yeniden boyutlandırmak için autoResizeColumns(startColumn, numColumns) kullanıyor. setFrozenRows(rows) yöntemi, verilen satır sayısını (bu örnekte iki kez) dondurur. Bu sayede, okuyucu e-tabloyu aşağı kaydırırken başlık satırları görünür durumda kalır.

Bir sonraki bölümde, aralıklar ve temel veri işleme hakkında bilgi edineceksiniz.

6. Aralık sınıfıyla verileri yeniden düzenleme

Range sınıfı ve yöntemleri, E-tablo hizmetindeki veri işleme ve biçimlendirme seçeneklerinin çoğunu sağlar.

Bu bölümde, aralıklarla temel veri işleme açıklanmaktadır. Bu alıştırmalar, Apps Komut Dosyası'ndaki aralıkların nasıl kullanılacağına odaklanmaktadır. Bu oynatma listesindeki diğer codelab'ler ise veri manipülasyonu ve veri biçimlendirmesi konusunda daha fazla ayrıntı verir.

Aralıkları taşı

Veri yöntemlerini, e-tablolardaki belirli hücre kümelerinin tanımlanmasını sağlayan bir kısaltması olan A1 gösterimi ile etkinleştirebilir ve taşıyabilirsiniz. Kendinizi yeniden tanımanız gerekiyorsa bu A1 gösterimi açıklamasına göz atın.

Bazı verileri taşımak için duplicateAndOrganizeActiveSheet() yönteminizi güncelleyelim:

  1. Google E-Tablolar'da etkinleştirmek için Sheet_Original sayfasını tıklayın.
  2. Apps Komut Dosyası'nda, duplicateAndOrganizeActiveSheet() işlevinizi aşağıdakiyle eşleşecek şekilde değiştirin:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());

  // Format the new sheet.
  duplicateSheet.autoResizeColumns(1, 5);
  duplicateSheet.setFrozenRows(2);

  // Move column F to column C.
  var myRange = duplicateSheet.getRange("F2:F");
  myRange.moveTo(duplicateSheet.getRange("C2"));
}
  1. İşlevi kaydedin ve çalıştırın.

Bu işlevi çalıştırdığınızda kopya bir sayfa oluşturulur, etkinleştirilir ve biçimlendirilir. F sütununun içeriği de C sütununa taşınır:

10ea483aec52457e.gif

Yeni kod, taşınacak veri aralığını tanımlamak için getRange(a1Notation) yöntemini kullanır. Yöntem parametresi olarak A1 gösterimini "F2:F2" şeklinde girerek F sütununu belirtirsiniz (F1 hariç). Belirtilen aralık varsa getRange(a1Notation) yöntemi Range örneğini döndürür. Kod, kullanımı kolaylaştırmak için örneği myRange değişkeninde depolar.

Aralık tanımlandığında moveTo(target) yöntemi, myRange içeriğinin (hem değerleri hem de biçimlendirmeyi) alır ve bunları taşır. Hedef (C sütunu), A1 gösterimi "C2" kullanılarak belirtilir. Bu bir sütun yerine tek bir hücredir. Verileri taşırken boyutları hedef ve hedef aralıklarıyla eşleştirmeniz gerekmez. Apps Komut Dosyası, her birinin ilk hücresini hizalar.

Aralıkları sırala

Range sınıfı sayesinde hücre gruplarını okuyabilir, güncelleyebilir ve düzenleyebilirsiniz. Örneğin, Range.sort(sortSpecObj) yöntemini kullanarak bir veri aralığını sıralayabilirsiniz:

  1. Google E-Tablolar'da etkinleştirmek için Sheet_Original sayfasını tıklayın.
  2. Apps Komut Dosyası'nda, duplicateAndOrganizeActiveSheet() işlevinizi aşağıdakiyle eşleşecek şekilde değiştirin:
function duplicateAndOrganizeActiveSheet() {
  var mySS = SpreadsheetApp.getActiveSpreadsheet();
  var duplicateSheet = mySS.duplicateActiveSheet();

  // Change the name of the new sheet.
  duplicateSheet.setName("Sheet_" + duplicateSheet.getSheetId());

  // Format the new sheet.
  duplicateSheet.autoResizeColumns(1, 5);
  duplicateSheet.setFrozenRows(2);

  // Move column F to column C.
  var myRange = duplicateSheet.getRange("F2:F");
  myRange.moveTo(duplicateSheet.getRange("C2"));

  // Sort all the data using column C (Price information).
  myRange = duplicateSheet.getRange("A3:D55");
  myRange.sort(3);
}
  1. İşlevi kaydedin ve çalıştırın.

Şimdi işlev, önceki biçimlendirmemize ek olarak, C sütunundaki fiyat bilgilerini kullanarak tablodaki tüm verileri sıralar:

a6cc9710245fae8d.png

Yeni kod, A3:D55'i kapsayan yeni bir aralık belirtmek için getRange(a1Notation) özelliğini kullanır (sütun başlıkları hariç tüm tablo). Kod daha sonra tabloyu sıralamak için sort(sortSpecObj) yöntemini çağırır. Burada, sortSpecObj parametresi sıralanacak sütun numarasıdır. Yöntem, belirtilen sütun değerlerinin en düşükten en yükseğe (artan değerler) doğru sıralanacağı şekilde sıralama yapar. sort(sortSpecObj) yöntemi daha karmaşık sıralama koşulları sağlayabilir ancak bunlara ihtiyacınız yoktur. Sıralama aralıklarını çağırmanın tüm farklı yöntemlerini yöntem referansı dokümanlarında görebilirsiniz.

Tebrikler, codelab'deki tüm egzersizleri başarıyla tamamladınız. Sonraki bölümde, bu codelab'in önemli noktaları incelenecek ve bu oynatma listesindeki sonraki codelab'in önizlemesi sunulacaktır.

7. Sonuç

Bu codelab'in sonuna geldiniz. Artık Apps Komut Dosyası'ndaki E-tablo hizmetinin temel sınıflarını ve şartlarını kullanabilir ve tanımlayabilirsiniz.

Bir sonraki codelab'e geçmeye hazırsınız.

Bu codelab'i faydalı buldunuz mu?

Evet Hayır

Ele aldığımız konular

  • E-tabloların, e-tabloların ve aralıkların Apps Komut Dosyası'nda nasıl gösterildiği.
  • SpreadsheetApp, Spreadsheet, Sheet ve Range sınıflarının bazı temel kullanımları.

Sonraki adımlar

Bu oynatma listesindeki bir sonraki codelab'de, e-tablodaki verileri okuma, yazma ve değiştirme konuları daha ayrıntılı şekilde açıklanmaktadır.

Bir sonraki codelab'i Verilerle çalışma sayfasında bulabilirsiniz.