2016-06-04 7 views
2

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

+0

Warum listen Sie auf, wenn Sie den Zähler nicht verwenden? –

+0

@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

+0

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. –

Antwort

0

In Excel Stile müssen auf einzelne Zellen angewendet werden, weil das ist, wie das Dateiformat funktioniert. Aufgrund der Funktionsweise bietet openpyxl nicht die gewünschte Funktionalität, ist aber mit xlsxwriter möglich.

Verwandte Themen