2010-03-04 10 views
5

Я могу получить фид из таблицы и листа. Я хочу захватить данные из каждой ячейки.Как написать скрипт python для манипулирования данными электронной таблицы Google

i.e, я могу получить фид с листа. Теперь мне нужно получить данные (тип строки?) Из каждой из ячеек для сравнения и ввода.

Как я могу это сделать?

+0

Я ничего не знаю о python, но не было бы проще сначала преобразовать файл excel в rtf, а затем прочитать значения? – Grumpy

+0

Я использую скрипт python для получения данных из электронной таблицы google docs здесь. – GeminiDNK

ответ

21

Там другая spreadsheet library стоит посмотреть: gspread. Я использовал упомянутую выше библиотеку данных Google, и для меня предоставленный api странный. Вам нужно извлечь ключ из таблицы, чтобы начать работу с этой таблицей.

Здесь это проще. Если вам нужно получить данные из ячейки вы можете просто открыть таблицу и получить значение:

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

Это выглядит намного более разумным и менее kludgey – Damian

0

gspread, вероятно, самый быстрый способ, чтобы начать этот процесс, однако есть некоторые ограничения скорости на обновление данных с использованием gspread от вашего локального хоста. Если вы перемещаете большие наборы данных с помощью gspread - например, перемещая 20 столбцов данных по столбцу, вы можете автоматизировать процесс, используя задание CRON.

0

Есть еще одна библиотека электронных таблиц: pygsheets. Его похоже на gspread, но использует google api v4. Следовательно, предоставляет больше возможностей.

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]")