【问题标题】:Copies of Hidden Sheets in Apps ScriptApps 脚本中隐藏工作表的副本
【发布时间】:2022-06-30 00:21:48
【问题描述】:

我有这段代码可以复制文档中的每个工作表。我不知道它是否会复制隐藏工作表,隐藏工作表的 _temp 副本不会出现在界面中,但我想它们也被隐藏了。如果它复制了,我如何修改代码以不复制隐藏的工作表?我的文档中有很多隐藏的 sh,它可以节省时间并避免崩溃。

var ss = SpreadsheetApp.openById(spreadsheetId);
var tempSheets = ss.getSheets().map(function(sheet) {
  var dstSheet = sheet.copyTo(ss).setName(sheet.getSheetName() + "_temp");
  var src = dstSheet.getDataRange();
  src.copyTo(src, {contentsOnly: true});
  return dstSheet;
});

谢谢

【问题讨论】:

  • 你为什么不先检查它是否确实复制了隐藏的工作表?我想有某种方法可以看到它们或知道它们的存在,否则它们为什么会存在?
  • 您可以检查.isSheetHidden(),如果是,请不要复制。

标签: javascript google-apps-script google-sheets


【解决方案1】:

这应该可行:

var ss = SpreadsheetApp.openById(spreadsheetId);
var tempSheets = ss.getSheets().filter(sheet => !.isSheetHidden()).map(function(sheet) {
  var dstSheet = sheet.copyTo(ss).setName(sheet.getSheetName() + "_temp");
  var src = dstSheet.getDataRange();
  src.copyTo(src, {contentsOnly: true});
  return dstSheet;
});

sheet.isSheetHidden() 将返回 true 如果工作表被隐藏,则返回 false 否则。我们首先将列表过滤为非隐藏工作表,然后仅复制其余工作表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    相关资源
    最近更新 更多