L'application de Format à l'Ensemble de la Ligne Openpyxl
J'ai un Fichier Excel que je veux format. La première ligne (à l'exclusion des en-Têtes afin row2) devrait être rouge et en italique.
la Openpyxl états de Documentation:
Si vous souhaitez appliquer les styles à l'ensemble de lignes et de colonnes, alors vous devez appliquer le style à chaque cellule-vous
Personnellement, je pense que cela pue... Voici ma solution:
import openpyxl
from openpyxl.styles import NamedStyle
from openpyxl import load_workbook
from openpyxl.styles.colors import RED
from openpyxl.styles import Font
# I normally import a lot of stuff... I'll also take suggestions here.
file = 'MY_PATH'
wb = load_workbook(filename=file)
sheet = wb.get_sheet_by_name('Output')
for row in sheet.iter_rows():
for cell in row:
if '2' in cell.coordinate:
# using str() on cell.coordinate to use it in sheet['Cell_here']
sheet[str(cell.coordinate)].font = Font(color='00FF0000', italic=True)
wb.save(filename=file)
Le premier inconvénient est que si il y a plus de cellules telles que A24
ma boucle d'appliquer la mise en forme à elle. Je peux résoudre ce problème avec une expression régulière. Serait-ce la bonne démarche?
En fin de compte est - il un meilleur moyen pour appliquer un format à l'ensemble de la ligne? Aussi. Quelqu'un peut me pointer dans la bonne direction de certaines bonne Openpyxl de la documentation? Je n'ai trouvé sur sheet.iter_rows()
et cell.coordinates
sur la Pile.
Vous devez vous connecter pour publier un commentaire.
Il n'est pas nécessaire d'itérer sur toutes les lignes si vous avez l'intention de modifier la couleur de la deuxième ligne, vous pouvez simplement effectuer une itération sur une seule ligne comme suit:
Vous donnant quelque chose comme:
Accès à plusieurs cellules est décrit dans la openpyxl docs: Accéder à de nombreuses cellules
Sinon, pour utiliser une
NamedStyle
:NamedStyles
est le chemin à parcourir.NamedStyle
avant, mais en pratique, comment l'appliquer à mon cas?