[PYTHON] Ein kleines Memorandum von openpyxl

Überblick

Da es viele Funktionen gibt und es später einfacher ist, sie aufzulisten, werden sie aufgelistet. Das ist nicht alles, weil es nur das ist, was ich selbst benutzt habe. Weitere Informationen finden Sie unter Offiziell.

Mach ein neues Buch

Mach ein Buch und mach ein Blatt. Danach wird davon ausgegangen, dass dies erfolgt ist.

python


import openpyxl

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

Einstellung des Blattnamens

python


sheet.name = "Sitzen"

Buch speichern

python


try:
    book.save("book.xlsx")
except exception as e:
    #Berechtigungsfehler beim Öffnen von Excel. Es kann andere geben.
finally:
    book.close()

Machen Sie Excel aus CSV

python


import csv

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

Zeichnen Sie einen Rand in die Zelle

Dieses Beispiel ist beim Ziehen zum Außenumfang der Zelle. Zellenspezifikationen (num_row, num_column) sind R1C1-Nummern (wie unten angegeben)

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

Farbe ist ein üblicher hexadezimaler RGB-Wert.

Wenn Sie den vorhandenen Rand beibehalten und nur einen Teil ändern möchten

python


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

Nachdem Sie den Status der aktuellen Regellinie erhalten haben, ändern Sie ihn mit der obigen.

Schriftarteinstellungen

python


font = openpyxl.styles.fonts.Font()
font.name = 'Schriftartenname'
font.size = 10
font.color = 'deadbeef'
#Spezifische Zelle
sheet.cell(row=num_row, column=num_col).font = font
#Der gesamte eingegebene Wertbereich
for r in sheet:
    for c in r:
        sheet[c.coordinate].font = font

Die Farbe wird unten hexadezimal abgekürzt.

Einstellung der Zellenbreite

Es scheint, dass es nicht verwendet werden kann, da es eine interne Funktion von Excel ist, die sich automatisch anpasst. Es scheint, dass die einzige Möglichkeit, es so aussehen zu lassen, darin besteht, aus dem Inhalt der Spalte zu berechnen.

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

Druckkonfiguration

Beim Drucken der ersten Zeile mit dem Drucktitel wird die Papierausrichtung als horizontal, die Anzahl der horizontalen Seiten als 1 und die Anzahl der vertikalen Seiten als nicht angegeben angegeben.

python


sheet.print_title_rows = '1:1'              #Titelzeile drucken
sheet.page_setup.orientation = 'landscape'  #Vertikal'portrait'
sheet.page_setup.fitToWidth = 1
sheet.page_setup.fitToHeight = 0
sheet.sheet_properties.pageSetUpPr.fitToPage = True

Zellfärbung

Beim Füllen gibt es natürlich auch andere Muster.

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 ist eine Hexadezimalzahl (ry)

Zeichenausrichtung in der Zelle

Im Falle von Boden und Zentrierung.

python


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

Filtereinstellungen

Beachten Sie, dass die Zellenspezifikation der Datenbereich ist, für den der Filter gilt. Die Zellenspezifikation ist in diesem Fall im A1-Format.

python


sheet.auto_filter.ref = "B2:D10"

Digitalisierung von Spaltennamen

In diesem Fall möchten Sie die Spaltennummer für R1C1 abrufen.

column_number.py


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

Recommended Posts

Ein kleines Memorandum von openpyxl
Hinweis zur Kernel-Kompilierung
Ein Memorandum zur Verwendung von eigen3
Eine kleine Beispielnotiz von list_head
Memorandum of files unter conf.d.
Ein Memorandum über den Inhalt der Abschlussumfrage
Memorandum von sed
Hinweis zur Verwendung der Python-Eingabefunktion
Ein Memorandum über die Geschwindigkeit der Diagonalisierung beliebigen Grades
Memorandum zu Djangos QueryDict
Memorandum zum Löschen von Python-Strings
Ein Memorandum über Probleme beim Formatieren von Daten
Ein Memorandum zum Aufrufen von Python aus Common Lisp
Ein Memorandum zum Studieren und Implementieren von Deep Learning
Memorandum der Extraktion durch Python BS4-Anfrage
[Linux-Befehl] Ein Memorandum häufig verwendeter Befehle
Memorandum of fastText (Bearbeitung)
Memorandum of vi Befehl
Ein Memorandum über Nan.
elasticsearch_dsl Memorandum
Ein Memorandum über Warnungen in Pylint-Ausgabeergebnissen
Ein Memorandum, in dem ich über mein persönliches HEROKU & Python (Flask) gestolpert bin
Ein einfaches Beispiel für pivot_table.
Memorandum über Korrelation [Python]
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS
Ein Memorandum über den Python-Mock
Ein Memorandum zur γ-Umwandlung
Eine kurze Zusammenfassung von Linux
Eine kleine Notiz, die auf printf folgt
Memorandum des Python-Paketverwaltungstools ez_setup
Memorandum of Scraping & Machine Learning [Entwicklungstechnik] von Python (Kapitel 4)
Memorandum of Scraping & Machine Learning [Entwicklungstechnik] von Python (Kapitel 5)
Ein Memorandum zum Erwerb der Grundprüfung für die Python3-Ingenieurzertifizierung
Eine Aufzeichnung zum Patchen eines Python-Pakets
Ein Memorandum bei der Verwendung von schöner Suppe
Memorandum über das Auswendiglernen rekursiver Reihen
Ein Memorandum zur Umstellung auf Manjaro Linux
Implementierung eines zweischichtigen neuronalen Netzwerks 2
[Django] Memorandum of Environment Construction Procedure
Eine kurze Zusammenfassung der Python-Sammlung
Memorandum über das Auswendiglernen rekursiver Funktionen
Eine Sammlung von einzeiligen Webservern
Eine grobe Zusammenfassung der Geschichte des Betriebssystems
[Memo] Kleine Geschichte von Pandas, numpy
Ich habe die Quantenbits (Anfänger) kurz zusammengefasst.
Anfänger Memorandum Python "isdigit" Bewegung
Generieren Sie eine Liste aufeinanderfolgender Zeichen
Die Geschichte des Exportierens eines Programms
Memorandum of JSON Schema Notation für Wörterbücher, die beliebige Schlüssel verwenden
Verwenden Sie shutil, um alle Ordner mit einer kleinen Anzahl von Dateien zu löschen
Ich habe einen kleinen Tello-Formationsflug mit Drohnen mit ESP32 versucht: DJI Tello-Drohnen-Formationsflug
Ein Memorandum darüber, wie man Pandas schreibt, das ich persönlich oft vergesse
Ein Memorandum mit Filterbefehlen, die Sie möglicherweise sofort vergessen