optimization - 优化 Google 脚本以隐藏列

标签 optimization google-apps-script google-sheets show-hide

这两个脚本非常慢。我处理的数据集大约有 32 列 x 1000 行(增长速度相当快)。

我读过甚至使用过像数组一样处理数据的代码,这样您就只能对 google-services 进行一次调用,但我不确定这对我处理这种情况有什么帮助。

我需要根据使用 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);
}

最佳答案

不幸的是,隐藏列是“仅限电子表格”功能,无法使其更快或批量...

也许您可以想象一个自定义 UI(使用 UiApp 或 HTMLService 构建)来仅显示用户相关数据?但这可能是不可能的,具体取决于您需要电子表格特定功能的程度......,而不是谈论它可能代表的工作。

关于optimization - 优化 Google 脚本以隐藏列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20131304/

相关文章:

c++ - 使用 memoized 函数观察到奇怪的性能

google-apps-script - 将 Google Drive 目录中的所有文件恢复为旧版本

google-sheets - 如何在本地缓存 GOOGLEFINANCE 结果?

javascript - 使用 AppScript/JavaScript 的 HTML 按钮事件

c# - 如何在 C# 中的 Google Sheets API v4 中格式化标题行?

javascript - 提高 Canvas 效果的实时性能

python - 优化暴力算法

c - 哪个更快,乘法还是减法?

javascript - 如何解析 Google App Script 中的 JSON 响应?

javascript - 尽管对象在数组中,indexOf 仍返回 -1 - Google 电子表格脚本中的 Javascript