【发布时间】:2022-04-24 01:57:25
【问题描述】:
经过一番搜索,我发现此代码可以将 Google 表格中所有选项卡(工作簿)的侧边栏作为超链接。如果可能的话,我希望为此添加两个功能
- 搜索功能 - 侧边栏上的搜索框可以更轻松地查找标签
- 同一标签 - 在同一浏览器标签中打开单击的超链接标签,而不是在新窗口中打开。
这是目前为止的代码:
function onOpen() {
SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
.createMenu('Sidebar Menu')
.addItem('Show sidebar', 'showSidebar')
.addToUi();
}
function showSidebar() {
var ui = HtmlService.createTemplateFromFile('sidebar.html')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('Index Sidebar');
SpreadsheetApp.getUi().showSidebar(ui);
}
function getSheetNames() {
// Get all the different sheet IDs
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
return sheetNamesIds(sheets);
}
// function to create array of sheet names and sheet ids
function sheetNamesIds(sheets) {
var indexOfSheets = [];
// create array of sheet names and sheet gids
sheets.forEach(function(sheet){
indexOfSheets.push([sheet.getSheetName(),sheet.getSheetId()]);
});
//Logger.log(indexOfSheets);
return indexOfSheets;
}
HTML
<!DOCTYPE html>
<h1>Index of all sheets in this workbook:</h1>
<input type="button" value="Close" onclick="google.script.host.close()" />
<ol>
<?!= getSheetNames().map(function(d) {
return "<li><a href='https://docs.google.com/spreadsheets/d/1234/edit#gid=" + d[1] + "' target='_blank'>" + d[0] + "</a></li>";
}).join(''); ?>
</ol>
【问题讨论】:
-
我必须为我糟糕的英语水平道歉。不幸的是,我无法理解
1. Search function - a search box on sidebar to look up tabs more easily. 2. Same tab - open the clicked hyperlinked tab in the same browser tab instead of opening in a new window.。可以问一下具体情况吗?
标签: javascript google-apps-script google-sheets