Ich möchte ein bestimmtes Format anwenden oder einem Bereich von Excel-Zellen einen Wert zuweisen, ohne über jede Zelle zu iterieren. Ich bin derzeit dieses Skript:openpyxl: Wert zuweisen oder Format auf einen Bereich von Excel-Zellen ohne Iteration anwenden
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
ws = wb.active
## With iterations
# Apply style
for i, rowOfCellObjects in enumerate(ws['A1':'C4']):
for n, cellObj in enumerate(rowOfCellObjects):
cellObj.fill = Font(name='Times New Roman')
# Assign singular value to all cells
for i, rowOfCellObjects in enumerate(ws['A1':'C4']):
for n, cellObj in enumerate(rowOfCellObjects):
cellObj.value = 3
wb.save("test.xlsx")
Aber ich für eine kürzere Schreibweise suchen, wie folgt aus:
from openpyxl import Workbook
from openpyxl.styles import Font
wb = Workbook()
ws = wb.active
## Without iterations
# Apply style
ws['A1':'C4'].fill = Font(name='Times New Roman')
# Assign singular value to all cells
ws['A1':'C4'].value = 3
wb.save("test.xlsx")
Hat openpyxl
oder ein anderes Modul bietet so etwas wie das?
ps: Ich verwende Python 3.5
Warum listen Sie auf, wenn Sie den Zähler nicht verwenden? –
@CharlieClark in dem von mir bereitgestellten Beispiel verwende ich den Zähler nicht, aber in meinem Skript muss ich über ein DataFrame 'df' iterieren, um jeden Wert dem Excel-Bereich der Zelle zuzuordnen:' cellObj.value = df .iat [i, n] ' – mat
Nun, der Code sollte das minimale Beispiel dessen sein, was Sie tun möchten. Es ist immer schwierig, wenn Sie anfangen, Code zu mischen und abzustimmen. –