(本文档仅供参考)
问题说明:
参照wiki:电子表格隐藏sheet页,实现电子表格隐藏sheet后,发现当sheet过多的时候,存在【更多】的时候。该宏代码也会把更多里面的sheet页给隐藏掉。如下图所示:
解决方案:
这个是因为此前的宏代码未考虑存在sheet页有【更多】的场景,可以通过修改成下方宏代码解决:
/*
对象:spreadsheetReport;
事件:onRenderReport
*/
function main(spreadsheetReport) {
var hideSheets = ["sheet1","sheet2"]; //数组里边写需要隐藏的sheet页名称
debugger;
for (var k = 0; k < hideSheets.length; k++) {
var removeSheetName = hideSheets[k];
for (var i = 0; i < spreadsheetReport.visibleSheetNames.length; i++) {
if (spreadsheetReport.visibleSheetNames[i] == removeSheetName) {
var row = spreadsheetReport.sheetsTable.rows[0];
for (var j = 0; j < row.cells.length; j++) {
if (row.cells[j]._sheetName == removeSheetName) {
row.removeChild(row.cells[j]);
// break;
}
}
spreadsheetReport.visibleSheetNames.splice(i, 1);//删除
spreadsheetReport.webShowSheetNames.splice(i, 1);
}
}
}
spreadsheetReport.selectedSheetTd = spreadsheetReport.sheetsTable.rows[0].cells[0];
}