Tidak bisa mendapatkan ID Spreadsheet di Google Apps Script
Saya telah mencoba untuk mendapatkan id lembar aktif dari [jawaban ini] [1] menggunakan:
function getActiveSheetId(){
var id = SpreadsheetApp.getActiveSheet().getSheetId();
Logger.log(id.toString());
return id;
}
tetapi logger saya mencatat 0. Apakah ada cara lain untuk mendapatkan hal yang sama? Saya ingin membaca lembar ini dari file lembar lain dan kemudian melakukan operasi.
[1]: https://stackoverflow.com/questions/26682269/get-google-sheet-by-id#:~:text=filter(%20function(s)%20%7B,Logs%20or%20use%20the % 20debugger.
Jawaban
Tidak ada yang salah dengan kodenya.
Ini mengembalikan 0 jika Anda menerapkan fungsi ini ke lembar pertama, yang merupakan id lembar yang benar seperti yang Anda lihat dari url halaman:
dan jika Anda menerapkan fungsi yang sama ke lembar yang berbeda, Anda mendapatkan lagi id lembar yang benar:
Jika Anda ingin mendapatkan sheet berdasarkan idnya, lihat posting ini:
Dapatkan Google Sheet berdasarkan ID?
Contoh:
function getSheetById(id) { return SpreadsheetApp.getActive().getSheets().filter( function(s) {return s.getSheetId() === id;} )[0]; }
misalnya jika Anda ingin mendapatkan lembar pertama (id = 0) maka lakukan itu:
var sheet = getSheetById(0);
Dan kemudian Anda dapat menerapkan semua operasi lembar sheetseperti biasa.