18

Tôi đang cố sử dụng API Google Drive (Python) để tải xuống một số tab của tệp bảng tính. Thông tin về các kênh có trong siêu dữ liệu của tệp không? Những gì tôi đang cố gắng làm là (điều này có thể không chính xác, xin gợi ý :)):Tôi làm cách nào để có danh sách các trang tính (tên và "gid") trong bảng tính Google bằng API Drive?

file_metadata = self.service.files().get(file_id=file_id).execute() 
# in the following line, how can I get a download url with a gid (a tab in a spreadsheet file) 
download_url = file_metadata.get('exportLinks')['text/csv'] 
# download the file. 

Cảm ơn :)

+1

>> download_url = file_metadata.get ('exportLinks') ['text/csv'] + '& gid =' + gid << Tôi cũng muốn nhận được các API đó, cùng với tên tab. – AMS

+0

Cảm ơn @AMS, yea với tên sẽ là tuyệt vời! –

+0

@AMS, tôi có thể hỏi lý do tại sao chúng ta cần phải di chuyển gid? –

Trả lời

1

Trên thực tế điều này dường như là một bản sao của How to convert Google spreadsheet's worksheet string id to integer index (GID)?

Đây là câu trả lời nhanh:

def to_gid(worksheet_id): 
    return int(worksheet_id, 36)^31578 
+0

Điều này dường như không hoạt động nữa (có lẽ do bảng tính google mới). Ví dụ, một worksheet_id của omlf5j6 là cho tôi 53609033112 sử dụng phương pháp này, khi gid thực tế là 1366234904 – Chris

1

Bạn có thể thực hiện việc này bằng dịch vụ Bảng tính trong Google Apps Script. Nó không phải là thuận tiện khi có một cuộc gọi API trực tiếp, nhưng ít nhất nó có thể:

  1. Gọi phương pháp SpreadsheetApp.openById(id) để mở bảng tính bằng cách sử dụng ổ file_id.
  2. Gọi phương thức Spreadsheet.getSheets() để truy xuất danh sách các đối tượng Sheet.
  3. Đối với mỗi trang tính, hãy gọi các phương thức Sheet.getSheetId()Sheet.getSheetName() để lấy tên (đó là những gì người dùng bảng tính nhìn thấy) và trang tính (là những gì cần được cung cấp trong thông số gid= khi xuất).

Bạn có thể sử dụng công cụ mới được công bố Apps Script Execution API để cung cấp API REST cho dự án Apps Script, sau đó bạn có thể gọi theo cách tương tự với API Drive.

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