2014-10-31 15 views

risposta

8

si può usare qualcosa di simile:

function getSheetIdtest(){ 
    var id = SpreadsheetApp.getActiveSheet().getSheetId();// get the actual id 
    Logger.log(id);// log 
    var sheets = SpreadsheetApp.getActive().getSheets(); 
    for(var n in sheets){ // iterate all sheets and compare ids 
    if(sheets[n].getSheetId()==id){break} 
    } 
    Logger.log('tab index = '+n);// your result, test below just to confirm the value 
    var currentSheetName = SpreadsheetApp.getActive().getSheets()[n].getName(); 
    Logger.log('current Sheet Name = '+currentSheetName); 
} 
+2

Grazie, ho fatto questo. Sembra molto maldestro che tu possa fare SpreadsheetApp.openById() e tu possa getSheetId(), ma non puoi selezionare un foglio per ID. – mrfinnsmith

-3

Non sei sicuro di ID, ma è possibile impostare in base al nome della scheda:

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
ss.setActiveSheet(ss.getSheetByName("your_sheet_name")); 

La classe SpreadsheetApp ha un setActiveSheet method e getSheetByName method.

2
var sheetActive = SpreadsheetApp.openById("ID"); 
var sheet = sheetActive.getSheetByName("Name"); 
+3

In che modo questo aiuta a selezionare un foglio se si conosce l'ID del foglio, ma non il nome del foglio? SpreadsheetApp.openByID apre un foglio di calcolo, non un foglio. – browly

+0

@browly Questo aiuta perché l'ID non cambia mai, ma se si scrive esplicitamente il nome del foglio e il foglio viene rinominato, lo script non funzionerà più. – Xzila