【问题标题】:How get data directly from a google spreadsheet?如何直接从谷歌电子表格中获取数据?
【发布时间】:2013-02-01 09:12:55
【问题描述】:

我需要我的 android 应用程序始终连接到同一个谷歌电子表格以获取单元格数据(我将在未来每天更改,以便应用程序可以在不使用服务器的情况下获取更新的数据)。

https://developers.google.com/google-apps/spreadsheets/?hl=it#ListFeeds 文档中,它展示了如何进行身份验证等,但我需要的是使用以下直接链接连接到公共电子表格:

https://docs.google.com/spreadsheet/ccc?key=xxx....

这可能吗?

【问题讨论】:

  • 有可能!!我为此编写了一个 js 库,但没有为 android 编写(没有检查)。 Gsheet2json 可能是库或代码可能会帮助您将其移植到 android

标签: android google-api google-sheets


【解决方案1】:

有可能,一些例子可以是James Moore http://blog.restphone.com/2011/05/very-simple-google-spreadsheet-code.html的代码

记住您需要在电子表格“文件->发布到网络”中手动添加

package com.banshee;

    import java.io.IOException;
    import java.net.URL;

    import com.google.gdata.client.spreadsheet.SpreadsheetService;
    import com.google.gdata.data.spreadsheet.CustomElementCollection;
    import com.google.gdata.data.spreadsheet.ListEntry;
    import com.google.gdata.data.spreadsheet.ListFeed;
    import com.google.gdata.util.ServiceException;

    public class SpreadsheetSucker {
      public static void main(String[] args) {
        SpreadsheetService service = new SpreadsheetService("com.banshee");
        try {
          // Notice that the url ends
          // with default/public/values.
          // That wasn't obvious (at least to me)
          // from the documentation.
          String urlString = "https://spreadsheets.google.com/feeds/list/0AsaDhyyXNaFSdDJ2VUxtVGVWN1Yza1loU1RPVVU3OFE/default/public/values";

          // turn the string into a URL
          URL url = new URL(urlString);

          // You could substitute a cell feed here in place of
          // the list feed
          ListFeed feed = service.getFeed(url, ListFeed.class);

          for (ListEntry entry : feed.getEntries()) {
            CustomElementCollection elements = entry.getCustomElements();
            String name = elements.getValue("name");
            System.out.println(name);
            String number = elements.getValue("Number");
            System.out.println(number);
          }
        } catch (IOException e) {
          e.printStackTrace();
        } catch (ServiceException e) {
          e.printStackTrace();
        }

      }
    }

【讨论】:

  • 这对我有用!!!但我们必须记住,我们必须添加 guava.jar(我的项目中的 guava-18.jar),在清单文件中添加权限,最后,将 threadpolicy 设置为 PermitAll() 。就是这样:)
  • 不再受支持,因为 Google 已强制要求 OAuth2.0 访问表格中的数据。通过以 JSON 格式访问表格数据并在您的应用程序结束时对其进行解析,仍有一种解决方法。使用此 URL 访问 JSON:spreadsheets.google.com/tq?key=<sheets-key> 例如:spreadsheets.google.com/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多