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

Office Script透视表过滤报错:无法读取undefined的get fields属性

Office Script透视表过滤错误修正:无法读取undefined的getFields属性

错误原因

  1. 第一个过滤逻辑里,getFields()[0]是孤立语句,未关联到freierField对象,后续调用applyFilter时用的是PivotFilterHierarchy而非PivotField,触发错误。
  2. 若getFilterHierarchy找不到指定名称的层级,会返回undefined,此时调用getFields()就会出现“无法读取undefined的getFields属性”的报错。

修正后的代码

function main(workbook: ExcelScript.Workbook) {
  // 获取工作表和透视表
  const basisFreiBlatt = workbook.getWorksheet("Basis FreiER");
  if (!basisFreiBlatt) {
    console.log("未找到工作表「Basis FreiER」");
    return;
  }

  const pivotFreiER = basisFreiBlatt.getPivotTable("PivotFreiER");
  if (!pivotFreiER) {
    console.log("未找到透视表「PivotFreiER」");
    return;
  }

  // 过滤「frei ER」字段为「nein」
  const freierHierarchy = pivotFreiER.getFilterHierarchy("frei ER");
  if (freierHierarchy) {
    const freierField = freierHierarchy.getFields()[0];
    freierField.applyFilter({
      manualFilter: {
        selectedItems: ["nein"]
      }
    });
  } else {
    console.log("未找到过滤层级「frei ER」");
  }

  // 过滤「arch」字段为「nein」
  const archHierarchy = pivotFreiER.getFilterHierarchy("arch");
  if (archHierarchy) {
    const archField = archHierarchy.getFields()[0];
    archField.applyFilter({
      manualFilter: {
        selectedItems: ["nein"]
      }
    });
  } else {
    console.log("未找到过滤层级「arch」");
  }

  // 过滤「Ladetermin」字段为「x」
  const ladeterminHierarchy = pivotFreiER.getFilterHierarchy("Ladetermin");
  if (ladeterminHierarchy) {
    const ladeterminField = ladeterminHierarchy.getFields()[0];
    ladeterminField.applyFilter({
      manualFilter: {
        selectedItems: ["x"]
      }
    });
  } else {
    console.log("未找到过滤层级「Ladetermin」");
  }
}

关键修正点

  • 给每个操作添加存在性检查,避免因找不到工作表、透视表或过滤层级导致的undefined错误。
  • 确保每个过滤层级都正确获取对应的PivotField(调用getFields()[0]),因为applyFilter方法属于PivotField对象,而非PivotFilterHierarchy。
  • 修正第一个过滤逻辑中孤立的getFields()[0]语句,将其与过滤层级对象关联。

内容的提问来源于stack exchange,提问作者Birgit-Fe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 07:41:02