[PYTHON] Un petit mémorandum d'openpyxl

Aperçu

Comme il existe de nombreuses fonctions et qu'il est plus facile de les lister plus tard, elles sont répertoriées. Ce n'est pas tout car c'est uniquement celui que j'ai utilisé moi-même. Veuillez consulter Officiel pour plus de détails.

Créer un nouveau livre

Faites un livre et faites une feuille. Après cela, on suppose que cela est fait.

python


import openpyxl

book = openpyxl.Workbook()
sheet = book.active

Réglage du nom de la feuille

python


sheet.name = "Asseoir"

Réserver enregistrer

python


try:
    book.save("book.xlsx")
except exception as e:
    #Erreur d'autorisation lors de l'ouverture d'Excel. Il peut y en avoir d'autres.
finally:
    book.close()

Créer Excel à partir de csv

python


import csv

with open("file.csv", "r") as f:
    for l in csv.reader(f):
        sheet.append(l)

Dessinez une bordure dans la cellule

Cet exemple concerne la traction vers la circonférence extérieure de la cellule. Les spécifications de cellule (num_row, num_column) sont des nombres R1C1 (identiques ci-dessous)

python


from openpyxl.styles.borders import Side

border = openpyxl.styles.borders.Border()
border.top = Side(style='hair', color='000000')
border.bottom = Side(style='thin', color='ff0000')
border.left = Side(style='thick', color='00ff00')
border.right = Side(style='medium', color='0000ff')
sheet.cell(row=num_row, column=num_column).border = border

la couleur est une valeur RVB hexadécimale courante.

Si vous souhaitez conserver la bordure existante et ne modifier qu'une partie

python


border = copy(sheet.cell(row=num_row, column=num_col).border)

Après avoir obtenu l'état de la ligne réglée actuelle avec ceci, changez-le avec celui ci-dessus.

Paramètres de police

python


font = openpyxl.styles.fonts.Font()
font.name = 'Nom de la police'
font.size = 10
font.color = 'deadbeef'
#Cellule spécifique
sheet.cell(row=num_row, column=num_col).font = font
#Toute la plage de valeur saisie
for r in sheet:
    for c in r:
        sheet[c.coordinate].font = font

la couleur est abrégée ci-dessous en hexadécimal.

Paramètre de largeur de cellule

Il semble qu'il ne puisse pas être utilisé car il s'agit d'une fonction interne d'Excel qui s'ajuste automatiquement. Il semble que la seule façon de faire ressembler cela est de calculer à partir du contenu de la colonne.

python


column = openpyxl.utils.get_column_letter(num_column)
length = len(sheet.cell(row=num_row, column=num_column)
sheet.column_dimensions[column].width = length * 1.5

Configuration d'impression

Lors de l'impression de la première ligne comme titre à imprimer, l'orientation du papier comme horizontale, le nombre de pages horizontales comme 1 et le nombre de pages verticales comme non spécifié.

python


sheet.print_title_rows = '1:1'              #Imprimer la ligne de titre
sheet.page_setup.orientation = 'landscape'  #Verticale'portrait'
sheet.page_setup.fitToWidth = 1
sheet.page_setup.fitToHeight = 0
sheet.sheet_properties.pageSetUpPr.fitToPage = True

Coloration cellulaire

Dans le cas du remplissage, il existe bien sûr d'autres motifs.

paint_cell.py


from openpyxl.styles.fills import (PatternFill, FILL_SOLID)
fill = PatternFill(fgColor='aabbcc', patternType=FILL_SOLID)
sheet.cell(row=num_row, column=num_column).fill = fill

fgColor est un nombre hexadécimal (ry)

Alignement des caractères dans la cellule

Dans le cas du fond et du centrage.

python


align = openpyxl.styles.Alignment()
align.horizontal = 'center'
align.vertical = 'bottom'
sheet.cell(row=num_row, column=num_column).alignment = align

Paramètres de filtre

Notez que la spécification de cellule est la plage de données à laquelle le filtre s'applique. La spécification de cellule dans ce cas est au format A1.

python


sheet.auto_filter.ref = "B2:D10"

Numérisation des noms de colonnes

C'est à ce moment que vous souhaitez obtenir le numéro de colonne de R1C1.

column_number.py


num_column = openpyxl.utils.column_index_from_string('D')

Recommended Posts

Un petit mémorandum d'openpyxl
Remarque sur la compilation du noyau
Un mémorandum d'utilisation de eigen3
Un petit exemple de note de list_head
Mémorandum de dossiers sous conf.d
Un mémorandum du contenu de l'enquête de clôture
Mémorandum de sed
Un mémorandum sur l'utilisation de la fonction d'entrée de Python
Un mémorandum de la vitesse de diagonalisation arbitraire des degrés
Mémorandum sur le QueryDict de Django
Mémorandum du processus de suppression de chaîne python
Un mémorandum de problème lors du formatage des données
Un mémorandum sur l'appel de Python à partir de Common Lisp
Un mémorandum d'étude et de mise en œuvre du Deep Learning
Mémorandum d'extraction par requête python bs4
[Commande Linux] Un mémorandum des commandes fréquemment utilisées
Mémorandum de fastText (édition)
mémorandum de commande vi
Un mémorandum sur Nan.
Mémorandum elasticsearch_dsl
Un mémorandum sur les avertissements dans les résultats de sortie de pylint
Un mémorandum où je suis tombé sur mon HEROKU & Python personnel (Flask)
Un simple exemple de pivot_table.
Mémorandum sur la corrélation [Python]
[Introduction à AWS] Mémorandum de création d'un serveur Web sur AWS
Un mémorandum sur le simulacre de Python
Un mémorandum concernant la conversion γ
Un bref résumé de Linux
Une petite note qui suit printf
Mémorandum de l'outil de gestion de paquets Python ez_setup
Mémorandum of scraping & machine learning [technique de développement] par Python (chapitre 4)
Mémorandum of scraping & machine learning [technique de développement] par Python (chapitre 5)
Un mémorandum concernant l'acquisition de l'examen de base de certification d'ingénieur Python3
Un enregistrement de patcher un package python
Un mémorandum lors de l'utilisation d'une belle soupe
Mémorandum sur la mémorisation de séries récursives
Un mémorandum pour passer à Manjaro Linux
Implémentation d'un réseau de neurones à deux couches 2
[Django] Mémorandum de procédure de construction d'environnement
Un bref résumé de la collection Python
Mémorandum sur la mémorisation des fonctions récursives
Une collection de serveurs Web à une seule ligne
Un résumé approximatif de l'histoire du système d'exploitation
[Mémo] Petite histoire de pandas, stupide
J'ai brièvement résumé les bits quantiques (débutants)
Mémorandum du débutant Mouvement "isdigit" Python
Générer une liste de caractères consécutifs
L'histoire de l'exportation d'un programme
Mémorandum de notation de schéma JSON pour les dictionnaires qui prennent des clés arbitraires
Utilisez shutil pour supprimer tous les dossiers avec un petit nombre de fichiers
J'ai essayé un petit vol en formation de drone Tello avec ESP32: Vol en formation de drone DJI Tello
Un mémorandum sur la façon d'écrire des pandas que j'ai tendance à oublier personnellement
Un mémorandum de commandes de filtrage que vous pourriez oublier en un instant