2012-12-12 40 views
21

Tôi không thể sử dụng libs nào để phát triển một ứng dụng Android có thể điều khiển bảng tính Google. Tôi cần kết nối, sao chép, chỉnh sửa, đọc từ bảng tính người dùng nhưng tôi không thể hiểu hôm nay là cách nào.Android - Bảng tính Google Api

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/ 

Cái nào đúng?

Trả lời

9

Cuối cùng các thư viện tôi được sử dụng là:

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 

Theo đề nghị của Eugenio (nhờ cho rằng !!!) i "hỗn hợp" thư viện từ bảng api với java-client-api và sau khi xác thực i sử dụng sau đây để nhận được các tế bào

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); 

đối với thời điểm tôi sử dụng hệ thống xác thực "tồi tệ nhất" và tôi nên tắt chức năng này trong OAuth2 nhưng đối với thời điểm này ClientLogin được thực hiện theo cách này:

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

Bạn đã bao giờ nhận OAuth2 làm việc với điều này chưa? – Jack

+0

tôi thực sự không bao giờ làm việc trên nó một lần nữa .. tôi sử dụng ontly xác thực mô tả. Xin lỗi .. –

+0

nhưng nó sẽ trả về tất cả các bảng tính, cách đám mây tôi thử truy cập bảng tính cụ thể – Fasiha

23

Câu trả lời ngắn: Cả ba

Long trả lời:

Bạn sẽ phải sử dụng mới Drive API, cho phép tải lên, tải về và chỉnh sửa tập tin trong Google Drive. Với điều này, bạn chỉ có hoạt động giới hạn trên bảng tính, về cơ bản tải xuống hoặc tải lên.

Google Spreadsheet Api cho phép thực hiện các thao tác phức tạp trong bảng tính, như truy cập dữ liệu theo hàng và cột.

Google API java client là phụ thuộc trong tất cả API của Google, nó được sử dụng để cho phép kết nối theo các cách khác nhau, chẳng hạn như tài khoản OAuth hoặc dịch vụ.

+1

Cảm ơn bạn đã trả lời! .. bạn có bất kỳ hướng dẫn hoặc một ví dụ tải về? tôi không thể hiểu cách tích hợp chúng lại với nhau .. –

+0

Vâng, không phải với cả ba cùng nhau, nhưng [hướng dẫn này] (http://code.google.com/p/google-api-java-client/wiki/APIs#Drive_API) sử dụng API ứng dụng khách và API Drive, sử dụng API bảng tính phải đơn giản sau đó –

+2

@EugenioCuevas Liên kết đã chết. – rahulserver

Các vấn đề liên quan