查找电子表格中是否存在范围

时间:2018-03-05 17:15:47

标签: google-sheets-api

如何在Google SpreadSheet中列出工作表的名称?我试图找到使用DataFilters存在工作表

这是我的功能

public bool RangeExists(string sheet, string range)
        {
            BatchGetValuesByDataFilterRequest r = new BatchGetValuesByDataFilterRequest();
            DataFilter filter = new DataFilter();
            filter.A1Range = range;
            r.DataFilters = new List<DataFilter>() { filter };
            var a = service.Spreadsheets.Values.BatchGetByDataFilter(r, sheet).Execute();
            return a.ValueRange.Count>0;
        }

当我尝试查找我的电子表格是否有一张名为“Sheet”的工作表时,此代码会抛出此异常:

Google.Apis.Requests.RequestError
Invalid dataFilter[0]: Unable to parse range: Sheet!A:ZZ [400]
Errors [
    Message[Invalid dataFilter[0]: Unable to parse range: Sheet!A:ZZ] Location[ - ] Reason[badRequest] Domain[global]
]

谢谢。

1 个答案:

答案 0 :(得分:0)

如果您选中REST Resource: spreadsheets,您会发现有一个工作表属性可以显示电子表格中的所有工作表。

"sheets": [
    {
      object(Sheet)
    }
  ]

所以,你可以做的是打电话给spreadsheets.get。这将返回您正在寻找的工作表对象。您可以使用该链接中的Try-it并在“fields”参数中指示“*”以返回所有属性(包括工作表)。