Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization 优化Google脚本以隐藏列_Optimization_Google Apps Script_Google Sheets_Show Hide - Fatal编程技术网

Optimization 优化Google脚本以隐藏列

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 =

这两个脚本非常慢。我处理的数据集大约是32列乘以1000行(增长非常快)

我读过,甚至使用过把数据当作数组处理的代码,这样你就可以只调用一次谷歌服务,但我不知道这对我处理这个问题有什么帮助

我需要隐藏某些列,这取决于使用谷歌工作表的人

以下是实际代码:

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);
}