ไม่สามารถ getSheet ID ใน Google Apps Script

Aug 26 2020

ฉันพยายามรับรหัสแผ่นงานที่ใช้งานอยู่จาก [คำตอบนี้] [1] โดยใช้:

function getActiveSheetId(){
  var id  = SpreadsheetApp.getActiveSheet().getSheetId();
  Logger.log(id.toString());
  return id;
}

แต่คนตัดไม้ของฉันบันทึกเป็น 0 มีวิธีอื่นในการทำให้เหมือนกันหรือไม่? ฉันต้องการอ่านแผ่นงานนี้จากไฟล์แผ่นงานอื่นจากนั้นดำเนินการ

[1]: https://stackoverflow.com/questions/26682269/get-google-sheet-by-id#:~:text=filter(%20function(s)%20%7B,Logs%20or%20use%20the % 20debugger.

คำตอบ

2 Marios Aug 26 2020 at 16:57

ไม่มีอะไรผิดปกติกับรหัส

จะคืนค่า 0 หากคุณใช้ฟังก์ชันนี้กับแผ่นงานแรกซึ่งเป็นรหัสแผ่นงานที่ถูกต้องตามที่คุณเห็นจาก url ของหน้า:

และหากคุณใช้ฟังก์ชันเดียวกันกับแผ่นงานอื่นคุณจะได้รับรหัสแผ่นงานที่ถูกต้องอีกครั้ง:


หากคุณต้องการรับแผ่นงานตาม id ให้อ้างอิงโพสต์นี้:

รับ Google Sheet ด้วย ID?

  • ตัวอย่าง:

     function getSheetById(id) {
     return SpreadsheetApp.getActive().getSheets().filter(
      function(s) {return s.getSheetId() === id;}
    )[0];
    }
    

ตัวอย่างเช่นหากคุณต้องการรับแผ่นงานแรก (id = 0) ให้ทำดังนี้:

var sheet = getSheetById(0);

จากนั้นคุณสามารถใช้การดำเนินการชีตทั้งหมดกับสิ่งนี้ได้sheetตามปกติ