Skrip aplikasi google menulis ke lembar lain
Anda dapat dengan mudah menggunakan Google Apps Script untuk menyalin berbagai data dari satu Google Sheet ke Google Sheet lainnya, seperti yang Anda lakukan dengan menggunakan fungsi IMPORTRANGE di Google Sheets. Namun, ada beberapa keuntungan yang jelas untuk mengimpor rentang dengan Google Apps Script Show
Dalam tutorial ramah-pemula ini, kita akan membuat sebuah Catatan. Tutorial ini mencakup cara mengganti rentang dengan data yang ada menggunakan Google Apps Script. Jika Anda ingin menambahkan data, silakan buka bagian 'Bacaan lebih lanjut' untuk tutorial lebih lanjut tentang topik ini Seperti biasa, baca apa yang Anda butuhkan dan lewati sisanya. Daftar isi Menggunakan Google Apps Script melalui Google Sheets IMPORTRANGEJadi mengapa menggunakan Google Apps Script untuk mengimpor rentang ke Google Sheet lain ketika sudah ada fungsi IMPORTRANGE yang sangat berguna Sejujurnya, jika yang Anda lakukan hanyalah mengimpor sedikit data dari satu lembar ke lembar lainnya, hemat waktu Anda dan cukup gunakan IMPORTRANGE Anda mungkin ingin mempertimbangkan untuk menggunakan Apps Script untuk melakukan ini kapan
KodeAnda cukup menyalin dan menempelkan kode ke proyek Anda sendiri. Anda disarankan untuk menempelkan kode ini ke lembar sumber Anda atau proyek Skrip Google Apps independen Anda dapat mengetahui lebih lanjut tentang menambahkan skrip ke Lembar Google di sini 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 /** * Ini adalah fungsi penanda tempat yang digunakan untuk memanggil importRange * Anda dapat memanggil importRange() dari fungsi apa pun atau hanya menggunakan fungsi ini untuk proyek Anda */ fungsi runsies() {
importRange( "yourGoogleSheetSourceID", //ID Sumber - . g. "14QBa3ID3EWbK3FNReNUn5nlJwQFQR6l91zODzZTd6SA" "yourSourceSheetTab. A2. G", // Rentang Sumber - e. g. "Daftar tugas. A2. G" "yourGoogleSheetDestinationID", // Destination ID - e. g. "14QBa3ID3EWbK3FNReNUn5nlJwQFQR6l91zODzZTd6SA" "yourDestinationSheetTab. B3" // Mulai Rentang Tujuan - e. g. "Lembar1. B3" );
};
/** * Mengimpor rentang data dari satu Google Sheet ke yang lain * @param {string} sourceID - ID dari Google Sheet sumber * @param {string} sourceRange - Tab Lembar dan rentang untuk disalin * @param {string} destinationID - ID dari Google Sheet tujuan * @param {string} destinationRangeStart - Lokasi tujuan memulai sel sebagai nama sheet dan sel */ fungsi importRange(sourceID, sourceRange, destinationID, destinationRangeStart){
// Kumpulkan nilai rentang sumber const sourceSS = SpreadsheetApp.openById(sourceID); const sourceRng = sourceSS.getRange(sourceRange) const sourceVals = sourceRng.dapatkanNilai();
// Dapatkan lembar tujuan dan lokasi sel. // Get the destiation sheet and cell location. const destinationSS = SpreadsheetApp.openById(IDtujuan); const destinationStartRange = destinationSS.getRange(destinationRangeStart); const destSheet = destStartRange.getSheet();
// Hapus entri sebelumnya. Destinasi Lembar. bersih();
// Dapatkan rentang data lengkap untuk ditempel dari rentang awal. const destRange = destSheet.getRange( Jangkauan Awal. getRow(), Jangkauan Awal. getColumn(), Val sumber. panjang, SourceVals[0].panjang );
// Tempel di nilai. Jangkauan Tujuan. setValues(sourceVals);
SpreadsheetApp. siram(); }; Panduan penggunaan cepatJika Anda menggunakan skrip ini sebagai bagian kode yang berdiri sendiri, maka Anda dapat menyalin seluruh skrip. Jika tidak, jika Anda menggunakan skrip ini sebagai bagian dari proyek yang lebih besar, Anda dapat menyalin dan menempel di fungsi Fungsi
Menerapkan Beberapa Instance importRange()Gandakan pemanggilan fungsiAnda dapat menambahkan beberapa contoh fungsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 /** * Ini adalah fungsi penanda tempat yang digunakan untuk memanggil importRange * Anda dapat memanggil importRange() dari fungsi apa pun atau hanya menggunakan fungsi ini untuk proyek Anda */ fungsi runsies() {
importRange( "14QBy3ID3EWbK3FNReNUn5nlJwQFQR6l9OzODzZTd6SA", //ID Sumber - . g. "14QBa3ID3EWbK3FNReNUn5nlJwQFQR6l91zODzZTd6SA" "Daftar Tugas. A2. G", // Rentang Sumber - e. g. "Daftar tugas. A2. G" "1fhqnb3BDJhwPrMbyxaPY6LNcPoExF038a1h-zvX3XIk", // ID Tujuan - e. g. "14QBa3ID3EWbK3FNReNUn5nlJwQFQR6l91zODzZTd6SA" "Sheet1. B3" // Mulai Rentang Tujuan - e. g. "Lembar1. B3" );
importRange( "anotherSourceGoogleSheetID", //ID Sumber< "Pizza. G7. P", // Rentang Sumber "anotherDestinationGoogleSheetID", // ID Tujuan "Sheet4. D100" // Mulai Rentang Tujuan );
}; Ulangi daftarAlternatifnya, jika Anda memiliki banyak rentang untuk diimpor, Anda dapat menyiapkan larik 2d (berguna jika Anda menyimpan data ini di Lembar Google) atau larik objek dan kemudian mengulang melalui masing-masing yang memanggil fungsi pada setiap iterasi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 /** * Ini adalah fungsi penanda tempat yang digunakan untuk memanggil importRange * Anda dapat memanggil importRange() dari fungsi apa pun atau hanya menggunakan fungsi ini untuk proyek Anda */ fungsi runsies() {
//Array impor untuk diselesaikan secara berurutan. // Seperti inilah tampilan data Anda jika Anda mendapatkan rentang atau impor dari Google Sheet tempat Anda menyimpannya. const arrayOfImports = [ [ "14QBy3ID3EWbK3FNReNUn5nlJwQFQR6l9OzODzZTd6SA", "Daftar Tugas. A2. G", "1fhqnb3BDJhwPrMbyxaPY6LNcPoExF038a1h-zvX3XIk", "Sheet1. B3" ], [ "yourGoogleSheetSourceID", "yourSourceSheetTab. A2. G", "yourGoogleSheetDestinationID", "yourDestinationSheetTab. B3" ], [ "yourGoogleSheetSourceID2", "yourSourceSheetTab. A2. G", "yourGoogleSheetDestinationID2", "yourDestinationSheetTab. B3" ] ]
// Ulangi setiap 'baris' urutan rentang impor. arrayOfImports. forEach(importSequence = > . importRange(.. . importSequence));
const arrayObjOfImports = [ { sourceID. "14QBy3ID3EWbK3FNReNUn5nlJwQFQR6l9OzODzZTd6SA", sourceRng. "Daftar Tugas. A2. G", KTP. "1fhqnb3BDJhwPrMbyxaPY6LNcPoExF038a1h-zvX3XIk", destStart. "Lembar1. B3" }, { sourceID. "IDGoogleSheetSourceID Anda", sourceRng. "yourSourceSheetTab. A2. G", KTP. "yourGoogleSheetDestinationID", destStart. "yourDestinationSheetTab. B3" }, { sourceID. "yourGoogleSheetSourceID2", sourceRng. "yourSourceSheetTab. A2. G", KTP. "yourGoogleSheetDestinationID2", destStart. "yourDestinationSheetTab. B3" } ]
// Ulangi setiap urutan rentang impor. arrayObjOfImports. forEach(importSeq = > . importRange(importSeq.sourceID, importSeq. sourceRng, importSeq. IDTujuan, importSeq. destStart));
}; Hanya itu saja. Jika Anda ingin mempelajari cara kerja kode atau cara menambahkan pemformatan ke rentang Anda, baca terus Jika menurut Anda tutorialnya bermanfaat, mengapa tidak meneriaki saya kopi ☕?
Ingin mempelajari lebih lanjut tentang Skrip Google Apps dalam format yang lebih terstruktur? . Udemy has some great courses that can get you from the basics to a real Google Apps Script pro. *Tautan afiliasi di atas telah diteliti dengan cermat untuk membawa Anda ke apa yang Anda butuhkan secara khusus. Jika Anda memutuskan untuk mengklik salah satu tautan ini, Anda akan dikenai biaya yang sama dengan mengunjungi situs tersebut. Jika Anda memutuskan untuk mendaftar, saya hanya mendapatkan sedikit uang saku untuk membantu membayar biaya menjalankan situs web ini Kerusakan KodeKami hanya akan membahas fungsi Ini adalah blok kode Google Apps Script yang cukup ramah bagi pemula, jadi saya akan mendekati penjelasannya dengan mempertimbangkan pemula Kumpulkan nilai rentang sumber1 2 3 4 5 6 7 8 9 10 11 12 13 14 fungsi importRange(sourceID, sourceRange, destinationID, destinationRangeStart){
. . .
// Kumpulkan nilai rentang sumber const sourceSS = SpreadsheetApp.openById(sourceID); const sourceRng = sourceSS.getRange(sourceRange) const sourceVals = sourceRng.dapatkanNilai();
. . .
}; Tugas pertama kita adalah memanggil spreadsheet sumber. Kami melakukan ini dengan metode kelas SpreadsheetApp. Metode ini membutuhkan satu argumen, ID Google Sheet yang ingin kita kerjakan. Bagi kami, ini akan menjadi Setelah kami menginisialisasi metode ini, kami sekarang dapat menjalankan metode lain di Google Sheet tersebut Sekarang setelah Google Sheet kami siap untuk bekerja, kami dapat memilih rentang yang ingin kami salin (atau ekspor dalam kasus kami). Kita bisa melakukannya dengan metode ini. Metode ini mengambil rentang notasi A1 sebagai argumen. Misalnya “Lembar1. A4. B". Di sini kita akan menambahkan variabel Metode ini memungkinkan kita untuk mengakses dan memanipulasi rentang yang dipilih Kami menyimpan data ini dalam variabel Terakhir, kami mengumpulkan nilai rentang ini dan menyimpannya dalam variabel 1 2 3 4 5 6 Val sumber = [ [ "Data A1", "Data B1, "C1 data", "D1 data"], [ "Data A2", "Data B2, "C2 data", "D2 data"], [ "Data A3", "Data B3, "C3 data", "D3 data"], ] Kumpulkan tab Destination Sheet dan Start Cell1 2 3 4 // Dapatkan lembar tujuan dan lokasi sel. // Get the destiation sheet and cell location. const destinationSS = SpreadsheetApp.openById(IDtujuan); const destinationStartRange = destinationSS.getRange(destinationRangeStart); const destSheet = destStartRange.getSheet()); Tugas kita selanjutnya adalah menyiapkan Google Sheet tujuan kita Sekali lagi pertama-tama kita perlu memanggil (membuka) lembar tujuan dengan memasukkan Selanjutnya, kami ingin mendapatkan rentang awal kami. Kami akan menggunakan ini nanti untuk memisahkan baris awal dari huruf kolom dan juga menemukan tab lembar tempat kami akan mengimpor Sama seperti di data sumber kami, kami memanggil metode menggunakan Kali ini kita harus terlebih dahulu memilih tab sheet tujuan yang akan kita impor datanya. Kita dapat melakukannya dengan memanggil metode pada range. Metode ini akan memungkinkan kita mengerjakan lembaran secara keseluruhan, bukan hanya rentangnya. Baris 4 Bersihkan lembarannyaKarena kita akan mengganti semua data pada tab sheet tujuan dengan data baru kita harus menghapusnya terlebih dahulu sehingga kita memiliki sheet baru Kita dapat melakukan ini dengan metode yang kita terapkan pada 1 2 // Hapus entri sebelumnya. Destinasi Lembar. bersih(); Dapatkan rentang data lengkap yang perlu kita tempel1 2 3 4 5 6 7 // Dapatkan rentang data lengkap untuk ditempel dari rentang awal. const sourceVals = destSheet.getRange( Jangkauan Awal. getRow(), Jangkauan Awal. getColumn(), Val sumber. panjang, SourceVals[0].panjang ); Sekarang kita tidak bisa hanya mengandalkan rentang awal untuk dapat mengimpor nilai sumber kita. Kita harus mendapatkan rentang nilai penuh Jika Anda telah memperhatikan, Anda mungkin telah memperhatikan bahwa kami menggunakan metode Dalam kode di atas kami menerapkan 4 argumen numerik
Tempel dan siram1 2 3 4 // Tempel di nilai. Jangkauan Tujuan. setValues(sourceVals);
SpreadsheetApp. siram(); Langkah terakhir kami adalah mengimpor nilai sumber kami ke rentang tujuan yang baru kami tetapkan. Kita bisa melakukan ini dengan metode yang menggunakan Terakhir, kami ingin memastikan bahwa Skrip Google Apps menerapkan kode kami dan tidak menunggu perintah spreadsheet lainnya dengan metode ini. Ini sangat penting ketika kita memanggil fungsi Menambahkan beberapa pemformatanDalam kebanyakan kasus, biasanya merupakan praktik yang baik untuk mengizinkan lembar tujuan Anda menentukan pemformatan kode Anda. Namun, ada beberapa kasus seperti saat Anda mungkin ingin menerapkan pemformatan Untungnya bagi kami, kami dapat menggunakan Katakanlah kita ingin menyalin warna latar belakang, gaya font (normal, coretan, miring, dll. ) dan font-weight (bold/normal) ke lembar tujuan kita. Seperti inilah tampilan fungsi 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 /** * Mengimpor rentang data dari satu Google Sheet ke yang lain * @param {string} sourceID - ID dari Google Sheet sumber * @param {string} sourceRange - Tab Lembar dan rentang untuk disalin * @param {string} destinationID - ID dari Google Sheet tujuan * @param {string} destinationRangeStart - Lokasi tujuan memulai sel sebagai nama sheet dan sel */ fungsi importRange(sourceID, sourceRange, destinationID, destinationRangeStart){
// Kumpulkan nilai rentang sumber const sourceSS = SpreadsheetApp.openById(sourceID); const sourceRng = sourceSS.getRange(sourceRange) const sourceVals = sourceRng.dapatkanNilai();
// Dapatkan data pemformatan const sourceFontStyle = sourceRng.getFontStyles(); const sourceFontWeight = sourceRng.getFontWeights(); const sourceFontBackgroundColor = sourceRng.dapatkanLatar Belakang();
// Dapatkan lembar tujuan dan lokasi sel. // Get the destiation sheet and cell location. const destinationSS = SpreadsheetApp.openById(IDtujuan); const destinationStartRange = destinationSS.getRange(destinationRangeStart); const destSheet = destStartRange.getSheet();
// Hapus entri sebelumnya. Destinasi Lembar. bersih();
// Dapatkan rentang data lengkap untuk ditempel dari rentang awal. const destRange = destSheet.getRange( Jangkauan Awal. getRow(), Jangkauan Awal. getColumn(), Val sumber. panjang, SourceVals[0].panjang );
// Tempel di nilai. Jangkauan Tujuan. setValues(sourceVals);
// Menyetel pemformatan Jangkauan Tujuan. setFontStyles(sourceFontStyle); Jangkauan Tujuan. setFontWeights(sumberFontWeight); Jangkauan Tujuan. setBackgrounds(sourceFontBackgroundColor);
SpreadsheetApp. siram(); }; Seperti yang Anda lihat di wilayah yang disorot, pertama-tama kami mengumpulkan pemformatan sumber yang diinginkan dengan menerapkan metode berikut ke Perhatikan 's' di bagian akhir, ini berarti akan mengumpulkan semua data pemformatan di seluruh rentang, bukan hanya sel pertama dari rentang yang dipilih Setelah kami menetapkan nilai kami di Google Sheet tujuan kami, kami kemudian mengatur semua pemformatan dengan menerapkan yang berikut ke Biasanya merupakan praktik yang baik untuk menyatukan panggilan metode ini karena Google Apps Script akan mencoba dan membantu Anda dan menggabungkan panggilan ini bersama-sama dan mencoba melakukannya sekaligus sehingga skrip Anda berjalan lebih cepat Ada banyak metode 'set' dan 'get' pemformatan lain yang dapat Anda gunakan juga. Lihat tautan ke dokumen dan gulir di sepanjang bilah sisi untuk melihat apa yang dapat Anda lakukan Skrip Google Apps. SpreadsheetApp. berbagai dokumen Menambahkan Pemicu WaktuAnda juga dapat menyiapkan Kabar baiknya adalah Anda tidak perlu melakukan pengkodean tambahan untuk melakukan ini. Lihat video saya di bawah ini tentang cara menambahkan pemicu waktu ke Skrip Google Apps Anda VideoBerikut video tutorialnya Jika Anda ingin mengikuti tutorialnya, berikut ini tautan ke file yang saya gunakan
KesimpulanDalam tutorial ini, kami membahas cara menyalin data Google Sheet dari satu spreadsheet ke yang lain menggunakan Google Apps Script yang pada dasarnya membuat IMPORTRANGE kita sendiri Anda telah mempelajari cara menambahkan pemformatan ke data yang ditempelkan dan juga cara menyetel pemicu waktu Pendekatan ini menimpa data yang ada di lembar tujuan. Tetapi bagaimana jika Anda ingin menambahkan ke bagian bawah spreadsheet lain atau tab sheet lain di Google Sheet yang sama? Bagaimana cara menyalin data dari satu spreadsheet ke yang lain menggunakan skrip Google?Impor data dari spreadsheet lain . Di Spreadsheet, buka spreadsheet Di sel kosong, masukkan =IMPORTRANGE Dalam tanda kurung, tambahkan spesifikasi berikut dalam tanda petik dan dipisahkan dengan koma*. URL spreadsheet di Spreadsheet. . tekan enter Klik Izinkan akses untuk menyambungkan 2 spreadsheet Bagaimana cara saya menulis ke sheet lain di Google Sheets?Buka atau buat sheet. Pilih sel. Ketik = diikuti dengan nama sheet, tanda seru, dan sel yang akan disalin . Misalnya, =Lembar1.
Bagaimana cara menautkan skrip Aplikasi Google ke Lembar Google?Aktifkan Google Sheets API . Buka proyek Apps Script Klik Kode editor Di sebelah Layanan, klik Tambah layanan Pilih Sheets API dan klik Tambahkan Bisakah Anda menulis skrip untuk Google Sheets?Google Apps Script memungkinkan Anda melakukan hal-hal baru dan keren dengan Google Spreadsheet . Anda dapat menggunakan Apps Script untuk menambahkan menu, dialog, dan sidebar khusus ke Google Sheets. Ini juga memungkinkan Anda menulis fungsi khusus untuk Spreadsheet, serta mengintegrasikan Spreadsheet dengan layanan Google lainnya seperti Kalender, Drive, dan Gmail. |