此共享电子表格具有侧栏(通过自定义菜单扩展菜单打开)
侧栏显示电子表格中的单元格列表。当前为硬编码A1
,,A2
...(在SideBarTemplate.html
脚本编辑器中)
是否可以链接到特定的单元格?
侧栏中显示的最后一行这是对A1的HyperLink测试,试图使用带有指向A1的链接的href标记(href="#gid=1744285851&range=A1"
),但此方法不起作用。
侧栏图片:
GAS代码:
function onOpen(){
addMenu();
}
function addMenu(){
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'ShowSideBar', functionName: 'showSideBar'}
];
spreadsheet.addMenu ('Extensions Menu', menuItems);
}
function showSideBar(){
// Display a sidebar with custom HtmlService content.
var htmlTemplate = HtmlService
.createTemplateFromFile("SideBarTemplate");
htmlOutput = htmlTemplate.evaluate();
htmlOutput.setTitle('Ext. Side Bar');
SpreadsheetApp.getUi().showSidebar(htmlOutput);
}
HTML模板:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<style>
.style1 {
color: blue;
}
.style2 {
color: red;
}
</style>
</head>
<body>
<?var cells = ["A1","A2"]
for (var i = 0; i< cells.length;i++){?>
<div class="style1">Cell: <?=cells[i]?> <p class="style2">Required: How to make the blue text to hyper link to cell <?=cells[i]}?>
</p></div>
<a href="#gid=1744285851&range=A1">This is HyperLink test to A1</a>
</body>
</html>
如该答案所述,缺少侧边栏框架沙箱属性allow-top-navigation
,因此无法导航顶部框架(包括哈希值更改)。
使用服务器端range.activate()
方法。使用google.script.run
,您可以更改Google表格中的有效范围:
//client side
a1buttonElement.addEventListener('click',()=>google.script.run.select("a1"))
//server side
const select = e => SpreadsheetApp.getActive().getActiveSheet().getRange(e).activate()
绕过沙箱限制的一种扭曲解决方法是使用Web应用程序。在这种情况下,应通过网络应用程序打开Google表格。如果它是由Web应用程序打开的,我们可以利用window.opener
api写入top
框架。请参阅相关答案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句