Tidak bisa mendapatkan ID Spreadsheet di Google Apps Script

Aug 26 2020

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

2 Marios Aug 26 2020 at 16:57

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.