2016-06-18 23 views
21

Tôi đang cố truy cập bảng tính Google bằng ví dụ bảng tính. Khi tôi chạy mã ví dụ, nó hoạt động tốt. Tôi chỉ thay đổi SpreadsheetId và phạm vi. Nó bắt đầu đem lại cho tôi:API bảng tính của Google, yêu cầu lỗi 400 lỗi: không thể phân tích cú pháp phạm vi

Exception in thread "main" com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request 
{ 
    "code" : 400, 
    "errors" : [ { 
    "domain" : "global", 
    "message" : "Unable to parse range: Class Data!A2:A4", 
    "reason" : "badRequest" 
    } ], 
    "message" : "Unable to parse range: Class Data!A2:A4", 
    "status" : "INVALID_ARGUMENT" 
} 
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146) 
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:113) 
    at com.google.api.client.googleapis.services.json.AbstractGoogleJsonClientRequest.newExceptionOnError(AbstractGoogleJsonClientRequest.java:40) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest$1.interceptResponse(AbstractGoogleClientRequest.java:321) 
    at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:1065) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:419) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:352) 
    at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:469) 
    at poc.mainPOC.main(mainPOC.java:157) 

Dưới đây là các mã:

String spreadsheetId = "my spread sheet ID"; 
    String range = "Class Data!A2:A4"; 
    ValueRange response = service.spreadsheets().values() 
     .get(spreadsheetId, range) 
     .execute(); 

Trả lời

44

Hãy thử thay thế Class Data!A2:A4 với A2:A4

+1

Nó làm việc cho tôi cảm ơn. –

+0

tôi muốn truy cập vào một bảng tính cụ thể làm cách nào tôi có thể làm điều đó? \t ValueRange phản ứng = service.spreadsheets() giá trị() \t \t .get (spreadsheetId, range) \t \t .execute(). Hiện tại tôi đang sử dụng để lấy dữ liệu –

+7

Trong ví dụ, có vẻ như 'Lớp dữ liệu' là tên của trang tính. Nếu không có tờ nào có tên đó thì nó sẽ phát ra lỗi. @ HemantYadav khi bạn nói bảng tính, bạn có nghĩa là bảng tính? Nếu đó là bảng tính thì bạn cung cấp bảng tính. Nếu đó là trang tính, bạn cung cấp nó trong phạm vi như "NameOfWorksheet! A2: A4" trong đó NameOfWorksheet là tên của trang tính bao gồm dấu cách. Bằng cách bỏ qua NameOfWorksheet và dấu chấm than, nó sẽ chuyển đến trang tính đầu tiên. – zeta

9

Nếu bạn nhìn vào bảng itself bạn sẽ nhận thấy rằng các Worksheet có tựa đề "Class Dữ liệu". Vì vậy, chỉ cần đặt tên trang tính của bạn là "Dữ liệu Lớp". Ví dụ: Phạm vi chuỗi = "SheetName! A1: C";

0

Tôi đã cố gắng để thêm một số dữ liệu vào một bảng tên Emmett điều đó không tồn tại được nêu ra và đã nhận lỗi này:

Error: Unable to parse range: Emmet!A2:C12

tôi phải tự tạo bảng tên Emmett trong bảng tính và sau đó Nó làm việc như một say mê.

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