5 fungsi skrip Google Helaian yang perlu anda ketahui

5 fungsi skrip Google Helaian yang perlu anda ketahui

Google Sheets adalah alat spreadsheet berasaskan awan yang kuat yang membolehkan anda melakukan hampir semua yang anda boleh lakukan di Microsoft Excel. Tetapi kekuatan sebenar Google Sheets adalah ciri skrip Google yang disertakan dengannya.

Google Apps Scripting adalah alat skrip latar belakang yang berfungsi bukan sahaja di Helaian Google tetapi juga Google Docs, Gmail, Google Analytics, dan hampir setiap perkhidmatan Google Cloud lain. Ini membolehkan anda mengautomasikan aplikasi individu tersebut, dan mengintegrasikan setiap aplikasi antara satu sama lain.

Isi kandungan

    Ini membuka tetingkap editor skrip dan lalai ke fungsi yang dipanggil myFunction (). Di sinilah anda boleh membuat dan menguji skrip Google anda.

    Untuk memberikan pukulan, cuba buat fungsi skrip Google Sheets yang akan membaca data dari satu sel, lakukan pengiraan di atasnya, dan mengeluarkan jumlah data ke sel lain.

    Fungsi untuk mendapatkan data dari sel adalah getRange () dan getValue () fungsi. Anda boleh mengenal pasti sel mengikut baris dan lajur. Jadi jika anda mempunyai nilai dalam baris 2 dan lajur 1 (lajur A), bahagian pertama skrip anda akan kelihatan seperti ini:

    fungsi myFunction () var sheet = SpreadsheetApp.getActiveSheet (); var baris = 2; var col = 1; data var = lembaran.getRange (baris, col).getValue (); 

    Ini menyimpan nilai dari sel itu di data pembolehubah. Anda boleh melakukan pengiraan pada data, dan kemudian tulis data itu ke sel lain. Jadi bahagian terakhir fungsi ini akan menjadi:

     hasil var = data * 100; lembaran.getRange (baris, col+1).setValue (hasil); 

    Apabila anda selesai menulis fungsi anda, pilih ikon cakera untuk menyimpan. 

    Kali pertama anda menjalankan fungsi skrip Google Sheets baru seperti ini (dengan memilih ikon Run), anda perlu memberikan kebenaran untuk skrip untuk dijalankan di akaun Google anda.

    Benarkan kebenaran diteruskan. Sebaik sahaja skrip anda berjalan, anda akan melihat bahawa skrip menulis hasil pengiraan ke sel sasaran.

    Sekarang anda tahu cara menulis fungsi skrip Google Apps asas, mari kita lihat beberapa fungsi yang lebih maju.

    Gunakan nilai get untuk memuatkan tatasusunan

    Anda boleh mengambil konsep melakukan pengiraan pada data dalam spreadsheet anda dengan skrip ke tahap yang baru dengan menggunakan array. Sekiranya anda memuatkan pembolehubah dalam skrip Google Apps menggunakan nilai get, pembolehubah akan menjadi array yang dapat memuatkan pelbagai nilai dari lembaran.

    fungsi myFunction () var sheet = SpreadsheetApp.getActiveSheet (); data var = lembaran.getDatarangange ().getValues ​​();

    Pemboleh ubah data adalah pelbagai pelbagai dimensi yang memegang semua data dari lembaran. Untuk melakukan pengiraan pada data, anda menggunakan a untuk gelung. Kaunter gelung untuk akan berfungsi melalui setiap baris, dan lajur tetap malar, berdasarkan lajur di mana anda ingin menarik data.

    Dalam contoh spreadsheet kami, anda boleh melakukan pengiraan pada tiga baris data seperti berikut.

    untuk (var i = 1; i < data.length; i++)  var result = data[i][0] * 100; sheet.getRange(i+1, 2).setValue(result);   

    Simpan dan jalankan skrip ini seperti yang anda lakukan di atas. Anda akan melihat bahawa semua hasil diisi ke dalam lajur 2 dalam hamparan anda.

    Anda akan melihat bahawa merujuk sel dan baris dalam pemboleh ubah array adalah berbeza daripada dengan fungsi getrange. 

    data [i] [0] merujuk kepada dimensi array di mana dimensi pertama adalah baris dan yang kedua adalah lajur. Kedua -duanya bermula pada sifar.

    getRange (i+1, 2) merujuk kepada baris kedua apabila i = 1 (sejak baris 1 adalah tajuk), dan 2 adalah lajur kedua di mana hasilnya disimpan.

    Gunakan appendrow untuk menulis hasil

    Bagaimana jika anda mempunyai spreadsheet di mana anda ingin menulis data ke dalam baris baru dan bukannya lajur baru?

    Ini mudah dilakukan dengan Appendrow fungsi. Fungsi ini tidak akan mengganggu data yang ada di dalam helaian. Ia hanya akan memasukkan baris baru ke lembaran yang ada.

    Sebagai contoh, buat fungsi yang akan dikira dari 1 hingga 10 dan tunjukkan kaunter dengan gandaan 2 dalam a Kaunter kolum.

    Fungsi ini akan kelihatan seperti ini:

    fungsi myFunction () var sheet = SpreadsheetApp.getActiveSheet (); untuk (var i = 1; i<11; i++)  var result = i * 2; sheet.appendRow([i,result]);  

    Berikut adalah hasilnya apabila anda menjalankan fungsi ini.

    Proses RSS suapan dengan urlfetchApp

    Anda boleh menggabungkan fungsi skrip Google Sheets sebelumnya dan UrlfetchApp Untuk menarik suapan RSS dari mana -mana laman web, dan tulis baris ke spreadsheet untuk setiap artikel yang baru -baru ini diterbitkan ke laman web tersebut.

    Ini pada dasarnya adalah kaedah DIY untuk membuat spreadsheet pembaca suapan RSS anda sendiri!

    Skrip untuk melakukan ini tidak terlalu rumit.

    fungsi myFunction () var sheet = SpreadsheetApp.getActiveSheet (); var item, tarikh, tajuk, pautan, desc; var txt = urlfetchApp.Ambil ("https: // www.Topsecretwriters.com/rss ").getContentText (); var doc = xml.parse (txt, palsu); Tajuk = Doc.GetElement ().GetElement ("Saluran").GetElement ("Tajuk").getText (); var item = doc.GetElement ().GetElement ("Saluran").getElements ("item"); // parsing item tunggal dalam suapan rss untuk (var i dalam item) item = item [i]; tajuk = item.GetElement ("Tajuk").getText (); pautan = item.GetElement ("Pautan").getText (); tarikh = item.GetElement ("Pubdate").getText (); desc = item.GetElement ("Keterangan").getText (); lembaran.appendRow ([Tajuk, Pautan, Tarikh, Desc]); 

    Seperti yang anda lihat, XML.menghuraikan Tarik setiap item dari suapan RSS dan memisahkan setiap baris ke dalam tajuk, pautan, tarikh dan keterangan. 

    Menggunakan Appendrow fungsi, anda boleh memasukkan item ini ke dalam lajur yang sesuai untuk setiap item dalam suapan RSS.

    Output dalam helaian anda akan kelihatan seperti ini:

    Daripada memasukkan URL suapan RSS ke dalam skrip, anda boleh mempunyai medan di lembaran anda dengan URL, dan kemudian mempunyai beberapa helaian - satu untuk setiap laman web yang anda ingin memantau.

    Rentetan bersatu dan tambahkan pulangan kereta

    Anda boleh mengambil spreadsheet RSS satu langkah lebih jauh dengan menambahkan beberapa fungsi manipulasi teks, dan kemudian gunakan fungsi e -mel untuk menghantar e -mel diri anda dengan ringkasan semua jawatan baru dalam suapan RSS laman web ini.

    Untuk melakukan ini, di bawah skrip yang anda buat di bahagian sebelumnya, anda akan mahu menambah skrip yang akan mengeluarkan semua maklumat dalam spreadsheet. 

    Anda ingin membina baris subjek dan badan teks e -mel dengan menghirup bersama -sama semua maklumat dari array "item" yang sama yang anda gunakan untuk menulis data RSS ke spreadsheet. 

    Untuk melakukan ini, mulakan subjek dan mesej dengan meletakkan baris berikut sebelum "item" untuk gelung.

    var subjek = '10 artikel terbaru yang diterbitkan di mysite.com '
    var mesej = "

    Kemudian, pada akhir "item" untuk gelung (tepat selepas fungsi appendrow), tambahkan baris berikut.

    mesej = mesej + tajuk + '\ n' + link + '\ n' + date + '\ n' + desc + '\ n' + '\ n \ n';

    Simbol "+" akan menggabungkan semua empat item bersama -sama diikuti oleh "\ n" untuk pulangan kereta selepas setiap baris. Pada akhir setiap blok data tajuk, anda akan mahu dua pulangan kereta untuk badan e -mel yang diformat dengan baik.

    Setelah semua baris diproses, pemboleh ubah "badan" memegang keseluruhan rentetan mesej e -mel. Sekarang anda sudah bersedia untuk menghantar e -mel!

    Cara Menghantar E -mel dalam Skrip Google Apps

    Bahagian seterusnya skrip Google anda adalah untuk menghantar "subjek" dan "badan" melalui e -mel. Melakukan ini dalam skrip Google sangat mudah.

    var e -melAddress = [email protected];
    MailApp.SendeMail (EmailAddress, subjek, mesej);

    MailApp adalah kelas yang sangat mudah di dalam skrip Google Apps yang memberi anda akses ke perkhidmatan e -mel akaun Google anda untuk menghantar atau menerima e -mel. Terima kasih kepada ini, garis tunggal dengan fungsi SendeMail membolehkan anda menghantar e -mel dengan hanya alamat e -mel, baris subjek, dan teks badan.

    Inilah e -mel yang dihasilkan. 

    Menggabungkan keupayaan untuk mengekstrak suapan RSS laman web, menyimpannya dalam lembaran Google, dan menghantarnya kepada diri anda dengan pautan URL yang disertakan, menjadikannya sangat mudah untuk mengikuti kandungan terkini untuk mana -mana laman web.

    Ini hanyalah satu contoh kuasa yang tersedia dalam skrip Google Apps untuk mengautomasikan tindakan dan mengintegrasikan pelbagai perkhidmatan awan.