1
Ich versuche, eine Formel in eine Zelle schreiben und für die gesamte Spalte schreiben. Für jede Zelle in der Spalte wird jedoch = (E2-F2)/C2 gelesen. Für jede Zelle in der gleichen Spalte wie bekomme ich es so (E3-F3)/C3 und so weiter?Openpyxl Formel Füllung für die gesamte Spalte
import openpyxl
wb = openpyxl.load_workbook('yes.xlsx')
Sheet = wb.get_sheet_by_name('Sheet1')
n = '=(E2-F2)/C2'
for cellObj in list(Sheet.columns)[6]:
cellObj.value = n
wb.save("row_creation_loop.xlsx")
Für mich sind Sie Ziel ist nicht klar angegeben. Sie sagen, es liest eine Formel (erhalten aus der Formel in Ihrem Code angegeben), aber Sie möchten, dass es eine andere Formel liest. Wenn Sie nur die hart codierte Formel in Ihrem Code ändern, wird das Problem nicht behoben? Möchten Sie stattdessen Werte in der Formel für jede Zeile in der Spalte erhöhen? Wenn Sie also eine Zeilenvariable in einer Schleife inkrementieren und in eine Zeichenfolge umwandeln würden, wäre eine bessere Klärung der Zielsetzungen hilfreich. – davedwards
Sorry, wenn ich nicht klar bin. Ich versuche, Werte in der Formel in jeder Zeile derselben Spalte zu erhöhen. –
danke für die Klärung. Sie könnten wahrscheinlich [enumerate] (http://docs.python.org/2/library/functions.html#enumerate) in der for-Schleife verwenden, um die Zeilennummer zu erhalten, und dann diesen Zeilenwert an "n" zuweisen. Vielleicht etwas wie: 'für row, cellObj in enumerate (Liste (Sheet.columns) [6]):' ... 'n = '= (E% dF% d)/C% d'% (Zeile, Zeile, Zeile) ' – davedwards