从现有的GoogleSheet我尝试创建一个图像按钮并附加一个小脚本,该脚本将使用目标Googlesheet的Id打开另一个GoogleSheet。我已经完成了图像按钮并知道如何将函数脚本附加到它。
我尝试了以下内容:
function Open2017File() {
var ss = SpreadsheetApp.OpenById("1mTz8YaH_lu6R3icbSCpgx0Oy-AB4a98thDPP0m1xNhU");
Logger.log(ss.getName());
}

然而,在进一步阅读后,我发现这只会打开服务器端脚本文件......
有人可以通过告诉我在客户端打开GoogleSheet的等效命令来帮助我。 ?
提前致谢
答案 0 :(得分:1)
您可以使用内置的HtmlService和scriptlet来实现此目的。转到'文件' - '新' - ' Html文件'并为您的项目添加HTML页面。我打电话给我的边栏'。 '<?!=?>'符号用于输出通过' .gs'传递给html的变量。码。感叹号'!'表示这些符号之间的任何内容都将直接打印到页面上。
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<a href="<?!= spreadsheet.url ?>"> Open spreadsheet <?!= spreadsheet.name ?> </a>
</body>
</html>
下面的代码将自定义菜单添加到电子表格中 - 点击“显示侧栏”&#39;菜单选项执行&#39; showSidebar()&#39;功能。在这个函数中,你应该首先获得侧边栏的HtmlTemplate类的实例。请注意,此时它只是一个JS对象,我们可以为其定义自定义属性。这是小脚本发挥作用的地方。
下一步是通过调用&#39; getSpreadsheet(id)&#39;来获取第二张表的网址和文件名。函数和传递变量到HtmlTemplate。
最后,在模板上调用evaluate()方法会将模板转换为HtmlOutput对象,准备好由showSidebar()方法使用。我们传递给模板的属性将打印到生成的html:
var ui = SpreadsheetApp.getUi();
var spreadsheetId = YOUR_ID_HERE;
function onOpen() {
ui.createMenu('User options').addItem('Show sidebar', 'showSidebar').addToUi();
}
function showSidebar() {
var template = HtmlService.createTemplateFromFile('sidebar');
var spreadsheet = getSpreadsheet(spreadsheetId);
template.spreadsheet = { //passing data to the template
url: spreadsheet.getUrl(),
name: spreadsheet.getName()
};
ui.showSidebar(template.evaluate()); //evaluate runs the scriptlets
//and creates the fully-formed DOM tree
}
function getSpreadsheet(id) {
return SpreadsheetApp.openById(id);
}
当然,您可以通过分配&#39; showSidebar&#39;来创建快捷方式。功能到电子表格内的按钮,便于访问。
答案 1 :(得分:1)
您可以使用此代码打开新工作表:
public List<GameObject> spawning=new List<GameObject>();
public Vector3[] positions = new Vector3[5];
public GameObject barrier;
public GameObject boundary;
void Start()
{
StartCoroutine (SpawnBarrier());
}
void Update()
{
if(true)
{
foreach (GameObject move in spawning)
move.transform.Translate (0f, 0f, -0.1f);
}
}
IEnumerator SpawnBarrier(){
yield return new WaitForSeconds (3f);
while (true) {
for(int i=0;i<=4;i++)
{
spawning.Add (Instantiate (barrier, positions [i], Quaternion.identity)as GameObject);
}
yield return new WaitForSeconds (3f);
}
}
我从这篇文章得到了这个:https://www.youtube.com/watch?v=2y7Y5hwmPc4
答案 2 :(得分:0)
因为无法切换到另一个工作表(标签),我找到了一个工作区。
只需隐藏一张或多张工作表,直到只有您想要的工作表。
然后用未隐藏的床单回去。