2017-01-05 5 views
-1

So versuche ich, alle Daten aus einer Excel-Datei mit dynamischer Zeilenlänge zu kopieren - kann von 100 bis 500 Zeilen, die ich dann möchte ich den Inhalt von jeder Zelle kopieren iterativ nach Spalte und Zeilen in die letzte ZeileSmartsheet API Python - extrahieren Daten von externen Excel-Datei für Zelle und Update in ein Smartsheet mit API

aktualisieren

jetzt mein aktueller Code aktualisiert von Row, wenn ich die Spalten-ID angeben, ich speichere Ich bin mir nicht sicher, wie ich ein Update durch Zellen in jeder Spalte in meiner Zeile zuerst iterieren, also wenn ich meine Internetverbindung aus irgendeinem Grund verliere weiß ich, bis wo es zuletzt aktualisiert wurde.

Ja, das ist langsamer Prozess

Der zweite Teil ist, kann ich eine Excel mit openpyxl Datei öffnen den Zellenwert lesen und speichern sie in einer Variablen, aber ich kämpfen, um Pass es an den Smart-Blatt-Code.

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

Jede mögliche Hilfe großer dank

Antwort

0

bekommen denke ich diese Links (Add Rows, Update Rows) werden Sie bei der Erreichung der Funktionalität nützlich sein Ich suche nach.

Wenn Sie eine Excel- oder CSV-Datei durchforsten, möchten Sie letztendlich die gesamte Zeilenaktualisierung (und Aktualisierungen für alle Zeilen) generieren, bevor Sie den Aktualisierungsaufruf an Smartsheet senden.

In Ihrem Code wird angezeigt, dass Sie für jede Zelle in Ihrem Blatt einen Aktualisierungsaufruf durchführen. Auf einer höheren Ebene können Sie also versuchen, zunächst alle columnIDs für Ihr Blatt und dann für jede Zeile in Ihrer Excel-Datei einen update/add-Aufruf für diese neue Zeile zu generieren.

Ihr letzter Schritt sollte ein einzelner Aufruf des Blattes sein, das alle Zeilenaktualisierungen enthält, nach denen Sie suchen. Der letzte Aufruf sollte sehr ernst etwas wie folgt aussehen:

smartsheet.Sheets.update_rows(SHEET_ID, ROW_UPDATES)

Wo ROW_UPDATES ist eine Liste aller Zeilenobjekte Sie hinzufügen/Aktualisierung.

Verwandte Themen