Android - Google Spreadsheet Api

我无法弄清楚我应该使用哪些libs来开发一个损害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/

哪个是正确的?


答案 1

简短的回答:所有三个

长答案:

您必须使用新的云端硬盘 API,该 API 允许在 Google 云端硬盘中上传、下载和修改文件。这样,您只需对电子表格进行有限的操作,基本上可以下载或上传它。

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

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


答案 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中将其打开,但目前客户端登录是以这种方式完成的:

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

推荐