2009-06-03 32 views
1

gdata APIまたはワークシートを含むスプレッドシートを1つのスプレッドシートから別のスプレッドシートにコピーすることはできますか?今のところ私は1つのワークシートから別のワークシートにすべてのセルをコピーします。要求ごとに1つのセル。それは遅すぎる。私は "細胞バッチ処理"について読み、このコードを書いてください:ワークシートをあるスプレッドシートから別のスプレッドシートにコピーする

 

src_key = 'rFQqEnFWuR6qoU2HEfdVuTw'; dst_key = 'rPCVJ80MHt7K2EVlXNqytLQ' 

sheetcl = gdata.spreadsheet.service.SpreadsheetsService('[email protected]','p') 
dcs = gdata.docs.service.DocsService('[email protected]', 'p') 

src_worksheets = sheetcl.GetWorksheetsFeed(src_key) 
dst_worksheets = sheetcl.GetWorksheetsFeed(dst_key) 

for src_worksheet, dst_worksheet in zip(src_worksheets.entry, dst_worksheets.entry): 

    sheet_id = src_worksheet.id.text.split('/')[-1] 
    dst_sheet_id = dst_worksheet.id.text.split('/')[-1] 

    cells_feed = sheetcl.GetCellsFeed(src_key, sheet_id) 
    dst_cells_feed = sheetcl.GetCellsFeed(dst_key, dst_sheet_id) 

    for cell in cells_feed.entry: 
     dst_cells_feed.AddInsert(cell) 

    sheetcl.ExecuteBatch(dst_cells_feed, dst_cells_feed.GetBatchLink().href) 
 

しかし、それは動作しません。

 

>>> cell.id.text 
'http://spreadsheets.google.com/feeds/cells/rFQqEnFWuR6qoU2HEfdVuTw/default/private/full/R1C1' 
>>> 
 

答えて

1

あなたはおそらく、対象のスプレッドシートでinserting rowsその後、一度に行全体を取得するためにcell range queryを使用する必要があります:私が思うとおりの理由は、内側のループ内の各セルはspreadsheet_idで構成され、そのIDを持っていることです。

関連する問題