Halo pembaca cantik ❤️ dan selamat datang di kamp pelatihan produktivitas Google Suite. Hari ini kita akan melihat cara mengimpor dan menyinkronkan data di seluruh tab dalam dokumen yang sama di lembar Google Show
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 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 praktis 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. 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 spesifik. 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. 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. 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 telah 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 rentang dari satu lembar Google ke yang lain?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 menyalin rentang sel di Google Sheets?Sel yang Tidak Berdekatan
. Kemudian salin kedua rentang menggunakan CTRL + C atau di Menu, pilih Edit > Salin. Pilih lokasi tujuan dan tekan CTRL + V atau, di Menu, pilih Edit > Tempel
Bagaimana cara mengisi informasi secara otomatis dari satu tab ke tab lainnya di Google Sheets?Untuk mengisi ulang nilai lainnya di kolom C secara otomatis, kita dapat mengarahkan kursor ke pojok kanan bawah sel C2 hingga tanda “+” kecil muncul. Kemudian klik dan seret ke bawah ke semua sel yang tersisa di kolom C . Apa ini? . |