Optimization 优化Google脚本以隐藏列
这两个脚本非常慢。我处理的数据集大约是32列乘以1000行(增长非常快) 我读过,甚至使用过把数据当作数组处理的代码,这样你就可以只调用一次谷歌服务,但我不知道这对我处理这个问题有什么帮助 我需要隐藏某些列,这取决于使用谷歌工作表的人 以下是实际代码:Optimization 优化Google脚本以隐藏列,optimization,google-apps-script,google-sheets,show-hide,Optimization,Google Apps Script,Google Sheets,Show Hide,这两个脚本非常慢。我处理的数据集大约是32列乘以1000行(增长非常快) 我读过,甚至使用过把数据当作数组处理的代码,这样你就可以只调用一次谷歌服务,但我不知道这对我处理这个问题有什么帮助 我需要隐藏某些列,这取决于使用谷歌工作表的人 以下是实际代码: function HideColumns(){ var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getActiveSheet(); var range =
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);
}
不幸的是,隐藏列是一个“仅电子表格”功能,无法使其更快或成批
也许您可以想象一个自定义UI(使用UiApp或HTMLService构建)只显示与用户相关的数据?但这可能是不可能的,这取决于您需要多少特定于电子表格的功能…,更不用说它可能代表的工作了 不幸的是,隐藏列是一个“仅电子表格”功能,无法加快速度或成批执行 也许您可以想象一个自定义UI(使用UiApp或HTMLService构建)只显示与用户相关的数据?但这可能是不可能的,这取决于您需要多少特定于电子表格的功能…,更不用说它可能代表的工作了 对于ShowColumns()脚本,是否只需要取消隐藏工作表中的所有列?如果是这样的话,您至少可以将其简化一点:
function ShowColumns() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("1:1");
sheet.unhideColumn(range);
}
对于ShowColumns()脚本,是否只需要取消隐藏工作表中的所有列?如果是这样的话,您至少可以将其简化一点:
function ShowColumns() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var range = sheet.getRange("1:1");
sheet.unhideColumn(range);
}