我正在尝试使用 python-gdata 在电子表格中填充工作表。问题是,更新单个单元格的速度非常慢。(一次处理一个,每个请求大约需要 500 毫秒!)因此,我尝试使用 gdata 中内置的批处理机制来加快处理速度。
问题是,我似乎无法插入新单元格。我已经在网上搜索了示例,但找不到任何示例。这是我的代码,我改编自文档中的示例。(文档实际上并没有说明如何插入单元格,但它确实显示了如何更新单元格。由于这是一个新工作表,它没有单元格。)
此外,启用调试后,我可以看到我的请求返回 HTTP 200 OK。
import time
import gdata.spreadsheet
import gdata.spreadsheet.service
import gdata.spreadsheets.data
email = '<snip>'
password = '<snip>'
spreadsheet_key = '<snip>'
worksheet_id = 'od6'
spr_client = gdata.spreadsheet.service.SpreadsheetsService()
spr_client.email = email
spr_client.password = password
spr_client.source = 'Example Spreadsheet Writing Application'
spr_client.ProgrammaticLogin()
# create a cells feed and batch request
cells = spr_client.GetCellsFeed(spreadsheet_key, worksheet_id)
batchRequest = gdata.spreadsheet.SpreadsheetsCellsFeed()
# create a cell entry
cell_entry = gdata.spreadsheet.SpreadsheetsCell()
cell_entry.cell = gdata.spreadsheet.Cell(inputValue="foo", text="bar", row='1', col='1')
# add the cell entry to the batch request
batchRequest.AddInsert(cell_entry)
# submit the batch request
updated = spr_client.ExecuteBatch(batchRequest, cells.GetBatchLink().href)
我的预感是我只是误解了 API,这应该适用于更改。任何帮助深表感谢。