当筛选条件包含公式时,Google表格API的 PivotFilter.getFilterCriteria会返回“Service error: Spreadsheets”错误

后端开发 2026-07-11

PivotFilter.getFilterCriteria 在直接引用数值时返回预期结果,如:'Text contains A'。然而,当筛选条件引用公式时,如:'Text contains ="A"',我得到上述错误。这两条筛选条件在数据透视表本身中都能按预期工作。只是API对第二条筛选条件似乎有问题。

最终我想通过API处理动态筛选条件,使用更复杂的公式,但连上面的简单情况都走不通。

有什么想法吗?提前感谢!

解决方案

我可以重现这个问题。

作为变通方法,请使用 Advanced Sheets Service

示例

下面的脚本将记录一个只有一个筛选条件的数据透视表的自定义公式。

function myFunction(){
  const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const sheet = spreadsheet.getSheetByName("Pivot Table 1");

  const response = Sheets.Spreadsheets.get(spreadsheet.getId(), {
    fields: "sheets.data.rowData.values.pivotTable.filterSpecs.filterCriteria.condition"
    });
  console.log(JSON.stringify(response,null, 2))
}
{
  "sheets": [
    {
      "data": [
        {}
      ]
    },
    {
      "data": [
        {
          "rowData": [
            {
              "values": [
                {
                  "pivotTable": {
                    "filterSpecs": [
                      {
                        "filterCriteria": {
                          "condition": {
                            "type": "CUSTOM_FORMULA",
                            "values": [
                              {
                                "userEnteredValue": "=LEFT(Location) = \"A\""
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章