在setActiveSpreadSheet doc中,示例非常明确:
// The code below will make the spreadsheet with key "1234567890" the active spreadsheet
var ss = SpreadsheetApp.openById("1234567890");
SpreadsheetApp.setActiveSpreadsheet(ss);
然而,在我的谷歌脚本中实现这一点,根本没有任何事情发生(甚至不是错误信息)..想法?
根据以下答案,很明显上述代码对用户界面没有影响。 我试过这样做:
function goToEstimate(sheetId)
{
window.open('https://docs.google.com/spreadsheets/d/'+sheetId);
}
然后我收到了这个错误:
ReferenceError: "window" is not defined.
有没有办法从谷歌脚本中访问javascript全局窗口变量?
答案 0 :(得分:2)
Apps脚本无法使电子表格显示在客户端的浏览器中,因为它是服务器端脚本。
方法openById
会返回电子表格中的句柄,从而可以使用Apps脚本中的电子表格进行操作。这就是打开电子表格所需要的"用于脚本的手段。此操作对用户界面没有影响。
方法setActiveSpreadsheet
几乎没用;它只会更改脚本调用getActiveSpreadsheet
时返回的电子表格。
对YouTube有影响的一种方法是setActiveSheet
:如果将其应用于用户在其浏览器中打开的电子表格,则该方法可以更改该电子表格的哪个标签/表单面向用户。
答案 1 :(得分:0)
我想,您不能只在浏览器中打开新标签页并按脚本打开新的电子表格。那是因为脚本无法控制浏览器。但是你可以从封闭的电子表格中获取数据:
function openSheetTest() {
var newWs = SpreadsheetApp.openById('1234567890');
var sheet = newWs.getSheetByName('Sheet1');
var data = sheet.getDataRange().getValues();
Logger.log(data);
}
G表中有一个班级getDataValidations
。我们现在所能做的就是制作promts或MsgBoxes。