如何在Google Sheets API中向查询添加过滤器?

时间:2019-07-01 23:46:09

标签: java google-sheets-api

我想按照指定的标准从我的Google表格中获得1行。在这种情况下,这是单元格的字符串值。我发现可以为此使用FilterView,但无法添加它。

这就是我现在拥有的

private static void getFilteredView(String searchValue) throws IOException {
        Map<String, FilterCriteria> stringCriteriaMap = new TreeMap<>();
        FilterCriteria filterCriteria = new FilterCriteria();
        filterCriteria.setCondition(new BooleanCondition()
                .setType("TEXT_EQ")
                .setValues(Collections.singletonList(
                        new ConditionValue().setUserEnteredValue(searchValue)
                ))
        );
        stringCriteriaMap.put("Text equals", filterCriteria);
        FilterView filterView = new FilterView().setCriteria(stringCriteriaMap);
        Request r = new Request();
        r.getAddFilterView().setFilter(filterView);
        AddFilterViewRequest body = new AddFilterViewRequest().setFilter(filterView);
        Sheets.Spreadsheets.Values.BatchUpdate request = getSheetService().spreadsheets().values()
                .batchUpdate(spreadsheetId, body).execute();

    }

问题是,这里

.batchUpdate(spreadsheetId, body).execute();

它不允许我将参数(body)传递给方法,它说:

batchUpdate (String, com.google.api.services.sheets.v4.model.BatchUpdateValuesRequest)
in Values cannot be applied to (String, com.google.api.services.sheets.v4.model.AddFilterViewRequest)

不幸的是,API附带了Python上的示例,我不知道该如何解决。 以下是API的示例:https://developers.google.com/sheets/api/guides/filters

0 个答案:

没有答案