我正在使用以下脚本在Google表格中创建边栏。此侧栏是此电子表格中所有非隐藏选项卡(工作表)的索引
我希望该索引按字母顺序排序。
function showSidebar() {
var ui = HtmlService.createTemplateFromFile('sidebar.html')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle('Index Sidebar');
SpreadsheetApp.getUi().showSidebar(ui);
}
function getSheetNames() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
return sheetNamesIds(sheets);
}
function sheetNamesIds(sheets) {
var indexOfSheets = [];
sheets.forEach(function(sheet){
if(sheet.isSheetHidden()!= true)indexOfSheets.push([sheet.getSheetName(),sheet.getSheetId()]);
});
return indexOfSheets;
}
function returnListItems(text) {
var sheetNames = getSheetNames()
// Checking if there is a search term
if (text) {
sheetNames = sheetNames.filter(n => n[0].includes(text))
}
var htmlString = sheetNames.map(function(d) {
var string = `
<li>
<input
type="button"
value="${d[0]}"
onclick=\"google.script.run.setActiveByName('${d[0]}')\"/>
</li>
`
return string }).join(' ')
return htmlString
}
function setActiveByName(name) {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(name)
SpreadsheetApp.setActiveSheet(ss)
}
任何想法如何..?
我相信您的目标如下。
getSheetNames()
。
I would like this Index sorted alphabetically.
,我认为您想实现以上目标。对于您的情况,我想对进行以下修改sheetNamesIds()
。
function sheetNamesIds(sheets) {
var indexOfSheets = [];
sheets.forEach(function(sheet){
if(sheet.isSheetHidden()!= true)indexOfSheets.push([sheet.getSheetName(),sheet.getSheetId()]);
});
return indexOfSheets;
}
function sheetNamesIds(sheets) {
var indexOfSheets = [];
sheets.forEach(function(sheet){
if(sheet.isSheetHidden()!= true)indexOfSheets.push([sheet.getSheetName(),sheet.getSheetId()]);
});
indexOfSheets.sort((a, b) => a[0] > b[0] ? 1 : -1); // Added
return indexOfSheets;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句