2010-03-04 37 views
5

Tôi có thể nhận nguồn cấp dữ liệu từ bảng tính và ID trang tính. Tôi muốn nắm bắt dữ liệu từ mỗi ô.Cách viết tập lệnh python để thao tác dữ liệu bảng tính google

tức là tôi có thể lấy nguồn cấp dữ liệu từ trang tính. Bây giờ tôi cần lấy dữ liệu (kiểu chuỗi?) Từ mỗi ô để so sánh và nhập liệu.

Tôi có thể làm như thế nào?

+0

Tôi không biết gì về python nhưng sẽ không dễ dàng hơn khi chuyển đổi tệp excel thành rtf và sau đó đọc trong các giá trị? – Grumpy

+0

Tôi đang sử dụng tập lệnh python để tìm nạp dữ liệu từ bảng tính tài liệu google tại đây. – GeminiDNK

Trả lời

21

Có một spreadsheet library đáng để xem xét: gspread. Tôi đã sử dụng dữ liệu của tôi libary đề cập ở trên và cho tôi api cung cấp là lạ. Bạn cần trích xuất khóa của bảng tính để bắt đầu làm việc với bảng tính này.

Đây là cách đơn giản hơn. Nếu bạn cần phải lấy dữ liệu từ một tế bào bạn chỉ có thể mở một bảng tính và có được giá trị:

g = gspread.login('[email protected]', 'password') 

worksheet = g.open('name_of_the_spreadsheet').get_worksheet(0) 

# Say, you need A2 
val = worksheet.cell(2, 1).value 

# And then update 
worksheet.update_cell(2, 1, '42') 
+3

Điều này có vẻ hợp lý hơn và ít kludgey hơn – Damian

0

gspread có lẽ là cách nhanh nhất để bắt đầu quá trình này, tuy nhiên có một số hạn chế tốc độ về việc cập nhật dữ liệu sử dụng gspread từ localhost của bạn. Nếu bạn đang di chuyển bộ dữ liệu lớn với gspread - ví dụ như di chuyển 20 cột dữ liệu qua một cột, bạn có thể muốn tự động hóa quy trình bằng cách sử dụng công việc CRON.

0

Có một thư viện bảng tính khác: pygsheets. Nó tương tự như gspread, nhưng sử dụng google api v4. Do đó cung cấp nhiều tùy chọn hơn.

import pygsheets 

gc = pygsheets.authorize() 

# Open spreadsheet and then workseet 
sh = gc.open('my new ssheet') 
wks = sh.sheet1 

# Update a cell with value (just to let him know values is updated ;)) 
wks.update_cell('A1', "Hey yank this numpy array") 

# update the sheet with array 
wks.update_cells('A2', my_nparray.to_list()) 

# share the sheet with your friend 
sh.share("[email protected]") 
Các vấn đề liên quan