【问题标题】:How to iterate all rows from Google Sheet如何迭代谷歌表格中的所有行
【发布时间】:2017-08-28 16:42:38
【问题描述】:

我正在使用 Google 电子表格 Api 和 Android Studio。我正在从工作表中读取信息,并将结果显示到列表视图中。我的问题是我只能从第一行检索信息,而不能从下一行检索信息。我该怎么做?

我有下一个代码:

private class MakeRequestTask extends AsyncTask<Void, Void, List<String>> {
        private Exception mLastError = null;

        MakeRequestTask(GoogleAccountCredential credential) {

        }

        @Override
        protected List<String> doInBackground(Void... params) {
            try {
                return getDataFromApi();
            } catch (Exception e) {
                mLastError = e;
                cancel(true);
                return null;
            }
        }

        private List<String> getDataFromApi() throws IOException {

            String range = "Sheet1!A2:H";
            List<String> results = new ArrayList<String>();
            ValueRange response = mService.spreadsheets().values()
                    .get(spreadsheet_id, range)
                    .execute();
            List<List<Object>> values = response.getValues();
            if (values == null) {
                //No me deja mostrar toast aqui
            } else {
                for (List row : values) {
                        row.get(0);
                        row.get(1);
                        row.get(2);
                        row.get(5);
                        System.out.println("resultados:" + row.get(0) + ", " + row.get(1));
                    }
                }


            return results;
        }

【问题讨论】:

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


    【解决方案1】:

    尝试查看Reading multiples ranges上的示例代码

    要读取多个不连续的范围,请使用spreadsheets.values.batchGet,它允许您指定要检索的任意数量的范围:

    这是一个示例 Java 代码:

    List<String> ranges = Arrays.asList(
            //Range names ...
            );
    BatchGetValuesResponse result = service.spreadsheets().values().batchGet(spreadsheetId)
            .setRanges(ranges).execute();
    

    另一件事是尝试将 for 循环替换为:

    for (List row : values) {
        // Print columns A and E, which correspond to indices 0 and 4.
        System.out.printf("%s, %s\n", row.get(0), row.get(4));
    }
    

    您可以指定所需的索引。在示例中索引 0 到 4。

    希望这就是你要找的。​​p>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-08
      • 2023-04-03
      • 2022-10-15
      • 2021-09-25
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多