【问题标题】:Android - Google Spreadsheet ApiAndroid - 谷歌电子表格 API
【发布时间】:2012-11-30 02:38:39
【问题描述】:

我不知道应该使用哪些库来开发管理 Google 电子表格的 Android 应用。我需要连接、复制、编辑、读取用户电子表格,但我今天不明白这是哪种方式。

Google Drive Api : https://developers.google.com/drive/
Google Spreadsheet Api: https://developers.google.com/google-apps/spreadsheets/
Google APi java client: http://code.google.com/p/google-api-java-client/

哪个是正确的?

【问题讨论】:

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


    【解决方案1】:

    简答:三个都

    长答案:

    您必须使用新的Drive API,它允许上传、下载和修改 Google Drive 中的文件。有了这个你只能对电子表格进行有限的操作,基本上是下载或上传。

    Google Spreadsheet Api 允许在电子表格中进行复杂的操作,例如按行和列访问数据。

    Google API java client 是所有 Google API 中的一个依赖项,它用于以不同的方式授权连接,例如 OAuth 或服务帐户。

    【讨论】:

    • 感谢您的回复! ..您有任何教程或可下载的示例吗?我无法理解如何将它们整合在一起..
    • 好吧,不是三个都在一起,而是this tutorial 使用客户端 API 和 Drive API,之后使用电子表格 API 应该很简单
    • @EugenioCuevas 链接已失效。
    • 是否有在 android 中执行 OAuth 2.0 的示例?在访问工作表 API 之前已经完成了吗?
    【解决方案2】:

    最后我使用的库是:

    gdata-client-1.0.jar
    gdata-client-meta-1.0.jar
    gdata-core-1.0.jar
    gdata-spreadsheet-3.0.jar
    gdata-spreadsheet-meta-3.0.jar
    google-api-client-1.12.0-beta.jar
    google-api-client-android-1.12.0-beta.jar
    google-http-client-1.12.0-beta.jar
    google-http-client-android-1.12.0-beta.jar
    google-oauth-client-1.12.0-beta.jar
    gson-2.1.jar
    guava-13.0.1.jar
    jackson-core-asl-1.9.9.jar
    jsr305-1.3.9.jar
    protobuf-java-2.4.1.jar
    

    正如 Eugenio 所建议的(谢谢!!!)我将电子表格 api 中的库与 java-client-api“混合”,在身份验证之后,我使用以下内容获取单元格

    SpreadsheetEntry spreadsheet = null;
    URL metafeedUrl = new URL("https://spreadsheets.google.com/feeds/spreadsheets/private/full");
    
    SpreadsheetFeed spreadsheetFeed = service.getFeed(metafeedUrl, SpreadsheetFeed.class);
    List<SpreadsheetEntry> spreadsheets = spreadsheetFeed.getEntries();
    for (SpreadsheetEntry entry : spreadsheets) {
       if (entry.getTitle().getPlainText().equals(spreadsheetTitle)) {
          spreadsheet = entry;
       }
    }
    
    if (spreadsheet == null) {
        throw new FileNotFoundException("Cannot find the required spreadsheet '" + spreadsheetTitle + "'");
    }
    
    WorksheetEntry worksheet = null;
    WorksheetFeed worksheetFeed = service.getFeed(spreadsheet.getWorksheetFeedUrl(), WorksheetFeed.class);
    List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
        for (WorksheetEntry entry : worksheets) {
        if (entry.getTitle().getPlainText().equals(worksheetTitle)) {
             worksheet = entry;
        }
    }
    
    if (worksheet == null) {
        throw new FileNotFoundException("Cannot find the required worksheet '" + worksheetTitle + "'");
    }
    
    URL listFeedUrl = worksheet.getListFeedUrl();
    ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);
    

    目前我使用“最差”的身份验证系统,我应该在 OAuth2 中打开它,但目前 ClientLogin 是以这种方式完成的:

    SpreadsheetService service = new SpreadsheetService("v1");
    service.setProtocolVersion(SpreadsheetService.Versions.V3);
    service.setUserCredentials(email, password);
    

    【讨论】:

    • 我实际上再也没有工作过。我只使用了描述的身份验证。对不起..
    • 但它会返回所有电子表格,我如何尝试访问特定的电子表格
    • @Fasiha 它实际上选择了一个特定的电子表格......以及其中的一个特定工作表......试试代码......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-05
    • 1970-01-01
    相关资源
    最近更新 更多