Google E-Tablolar ile Apps Komut Dosyasının Temelleri 2: E-Tablolar, E-Tablolar ve Aralıklar
Bu codelab hakkında
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
veSpreadsheet
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.
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.
Ö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.
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.
- 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");
}
- Komut dosyanızı kaydetmek için Kaydet'i
tıklayın.
- 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.
- Komut dosyanızı çalıştırmak için işlevler listesinden
renameSpreadsheet
'yi seçin ve Çalıştır'ı tıklayın. - 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:
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:
- 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();
}
- Komut dosyası projenizi kaydedin.
- 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.
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.
- Google E-Tablolar'da etkinleştirmek için
Sheet_Original
sayfasını tıklayın. - 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());
}
- İş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:
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:
- Google E-Tablolar'da etkinleştirmek için
Sheet_Original
sayfasını tıklayın. - 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);
}
- İş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:
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:
- Google E-Tablolar'da etkinleştirmek için
Sheet_Original
sayfasını tıklayın. - 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"));
}
- İş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:
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:
- Google E-Tablolar'da etkinleştirmek için
Sheet_Original
sayfasını tıklayın. - 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);
}
- İş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:
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?
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
veRange
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.