You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets条件格式提取脚本报错:getCondition不是函数

解决思路

1. 修正API方法调用

getCondition() 是旧版Google Sheets API对应的方法,当前新版Apps Script中已被拆分,需根据条件格式的类型调用对应方法:

  • 布尔逻辑类规则(如单元格值大于指定数):用 conditionalFormattingRule.getBooleanCondition()
  • 渐变填充类规则:用 conditionalFormattingRule.getGradientCondition()
  • 自定义公式类规则:用 conditionalFormattingRule.getCustomFormulaCondition()

示例提取代码片段:

function extractConditionalFormatting(sheetName) {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  var rules = sheet.getConditionalFormatRules();
  var storedRules = [];
  
  rules.forEach(rule => {
    var ruleData = {
      ranges: rule.getRanges().map(range => ({
        rowStart: range.getRow(),
        rowEnd: range.getLastRow(),
        colStart: range.getColumn(),
        colEnd: range.getLastColumn()
      }))
    };

    // 匹配对应规则类型并提取数据
    const boolCond = rule.getBooleanCondition();
    const gradCond = rule.getGradientCondition();
    const formulaCond = rule.getCustomFormulaCondition();

    if (boolCond) {
      ruleData.type = "boolean";
      ruleData.conditionType = boolCond.getConditionType();
      ruleData.values = boolCond.getValues();
      ruleData.format = boolCond.getFormat();
    } else if (gradCond) {
      ruleData.type = "gradient";
      ruleData.minpoint = gradCond.getMinpoint();
      ruleData.maxpoint = gradCond.getMaxpoint();
    } else if (formulaCond) {
      ruleData.type = "customFormula";
      ruleData.formula = formulaCond.getFormula();
      ruleData.format = formulaCond.getFormat();
    }

    storedRules.push(ruleData);
  });

  // 将规则存储到脚本属性中
  PropertiesService.getScriptProperties().setProperty('storedRules', JSON.stringify(storedRules));
}

2. 重应用规则的对应逻辑

恢复规则时,需根据存储的规则类型调用对应创建方法:

  • 布尔规则:SpreadsheetApp.newBooleanCondition()
  • 渐变规则:SpreadsheetApp.newGradientCondition()
  • 自定义公式规则:SpreadsheetApp.newCustomFormulaCondition()

3. 根源规避方案

  • 限制编辑权限:通过Sheets的「保护范围」功能,仅开放必要编辑区域,禁止全表复制粘贴操作
  • 定时自动恢复:设置时间驱动触发器,定期运行规则重应用脚本,避免规则丢失

内容的提问来源于stack exchange,提问作者bowow99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 23:20:07