如何通过Android中的Sheets API查询Google表格中的工作表数量

时间:2017-04-27 21:58:27

标签: android google-sheets google-sheets-api

在Android中使用Sheets API,我如何才能找到电子表格中的所有工作表?在API文档中看不到任何直接的内容,但也许有一个聪明的WA来获取这些。

举例说明,在下面的例子中,我想得到5个工作表的5个标签:

enter image description here

[编辑]后续问题(感谢Trevor),展示了我(缺乏)Java技能:

所以这样我就可以获得第一张工作表的标题:

Spreadsheet responseSpreadSheet = this.mService.spreadsheets().get(sheetsID).execute();
String First_Sheet_Title = responseSpreadSheet.getSheets().get(0).getProperties().getTitle();

出于好奇,为什么这种方法不起作用?它不允许我在单个工作表上应用'getProperties'方法,我假设从'get(0)返回。我确定这是我缺少的一些基本的Java东西:

List responseSheets = responseSpreadSheet.getSheets();
String First_Sheet_Title = responseSheets.get(0).getProperties().getTitle();

此外,是否有一种简单的方法可以将所有工作表名称放在一行中?现在我计划迭代从getSheets返回的列表/数组,有没有办法直接在其上应用'getTitle'来获取工作表名称列表? (希望这个问题有点意义)

1 个答案:

答案 0 :(得分:0)

在API文档中,它显示当您GET a Spreadsheet时,响应正文将包含电子表格的实例。

Spreadsheet包含数组工作表,它们是电子表格中的所有工作表

{
  "spreadsheetId": string,
  "properties": {
    object(SpreadsheetProperties)
  },
  "sheets": [
    {
      object(Sheet)
    }
  ],
  "namedRanges": [
    {
      object(NamedRange)
    }
  ],
  "spreadsheetUrl": string,
}

每个Sheet都有一个 SheetProperties 对象:

{
  "properties": {
    object(SheetProperties)
  },
  "data": [
    {
      object(GridData)
    }
  ],
  "merges": [
    {
      object(GridRange)
    }
  ],
  "conditionalFormats": [
    {
      object(ConditionalFormatRule)
    }
  ],
  "filterViews": [
    {
      object(FilterView)
    }
  ],
  "protectedRanges": [
    {
      object(ProtectedRange)
    }
  ],
  "basicFilter": {
    object(BasicFilter)
  },
  "charts": [
    {
      object(EmbeddedChart)
    }
  ],
  "bandedRanges": [
    {
      object(BandedRange)
    }
  ],
}

SheetProperties对象包含标题字段,这是您要查找的标签:

{
  "sheetId": number,
  "title": string,
  "index": number,
  "sheetType": enum(SheetType),
  "gridProperties": {
    object(GridProperties)
  },
  "hidden": boolean,
  "tabColor": {
    object(Color)
  },
  "rightToLeft": boolean,
}