这两个脚本非常慢。我使用大约32列×1000行的数据集(增长很快)。
我已阅读甚至使用代码处理类似数组的数据,这样您只能拨打一次Google服务电话,但我不确定这对我的情况有何帮助。
我需要隐藏某些列,具体取决于使用Google工作表的人
以下是实际代码:
function HideColumns(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A1");
sheet.hideColumn(range);
range = sheet.getRange("C1:E1");
sheet.hideColumn(range);
range = sheet.getRange("G1");
sheet.hideColumn(range);
range = sheet.getRange("I1");
sheet.hideColumn(range);
range = sheet.getRange("K1");
sheet.hideColumn(range);
range = sheet.getRange("Q1:Z1");
sheet.hideColumn(range);
range = sheet.getRange("AC1:AG1");
sheet.hideColumn(range);
}
function ShowColumns(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("A1");
sheet.unhideColumn(range);
range = sheet.getRange("C1:E1");
sheet.unhideColumn(range);
range = sheet.getRange("G1");
sheet.unhideColumn(range);
range = sheet.getRange("I1");
sheet.unhideColumn(range);
range = sheet.getRange("K1");
sheet.unhideColumn(range);
range = sheet.getRange("Q1:Z1");
sheet.unhideColumn(range);
range = sheet.getRange("AC1:AG1");
sheet.unhideColumn(range);
}
答案 0 :(得分:3)
不幸的是隐藏列是“仅电子表格”功能,无法使其更快或批量生效...
也许您可以想象一个自定义UI(使用UiApp或HTMLService构建)来仅显示用户相关数据?但这可能是不可能的,这取决于您需要多少电子表格特定的功能......,而不是说它可能代表的工作。
答案 1 :(得分:1)
对于ShowColumns()脚本,您只需要取消隐藏工作表中的所有列吗?如果是这样,你至少可以简化一下:
function ShowColumns() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("1:1");
sheet.unhideColumn(range);
}