2017-01-05 37 views
-1

所以我试图的所有数据从Excel动态行长度文件复制从外部提取数据练成通过细胞和更新文件到一个smartsheet - 的范围可以从100至500行,这是我然后想要复制每个单元格的内容,逐列迭代并将行更新到最后一行Smartsheet API的Python - 使用API​​

现在我的当前代码按行更新,当我指定列ID时,我将 存储为主列和非主列[] ,我不知道如何通过首行中的每一列中的单元格迭代更新,因此,如果我因任何原因而丢失我的互联网连接,直到最后更新它的位置。

是这是缓慢的过程

第二部分是我可以打开一个Excel与openpyxl 文件读取单元格的值并将其存储在一个变量,但我在努力 它通到智能片码。 ...

MySheet  =  smartsheet.Sheets.get_sheet(SHEET_ID, PrimaryCol) 
for MyRow in MySheet.rows: 
    for MyCell in MyRow.cells: 
     print (MyRow.id, MyCell.value) 
     row_a = smartsheet.Sheets.get_row(SHEET_ID,MyRow.id) 
     cell_a = row_a.get_column(PrimaryCol) 
     cell_a.value = 'new value' 
     row_a.set_column(cell_a.column_id, cell_a) 
     smartsheet.Sheets.update_rows(SHEET_ID, [row_a]) 

任何帮助将得到很大的感谢

回答

0

我认为这些链接(Add RowsUpdate Rows)将实现你的功能有帮助正在寻找。

最终,通过Excel或CSV文件抓取的时候,你会想提交更新调用Smartsheet之前生成整个行更新(和更新所有行)。

它出现在你的代码,你正在做的更新要求在您的工作表每个单元。因此,在高层次上,您可能首先尝试获取表格的所有columnID,然后尝试获取excel文件中的每一行,然后为该新行生成更新/添加调用。

你的最后一个步骤应该是包含了所有你要查找的行更新的片单呼。最后调用应该非常认真看起来像:

smartsheet.Sheets.update_rows(SHEET_ID, ROW_UPDATES)

哪里ROW_UPDATES是所有行对象的列表要添加/更新。