erstellen von Microsoft Excel Mappen mit Python3 und XlsxWriter – Zellenformatierungen (Teil2)

Im ersten Teil habe ich dir gezeigt wie du eine Microsoft Excel Mappe erstellst und Daten formatierst ablegst. In diesem Beitrag werde ich dir nun die verschiedenen Formatierungsmöglichkeiten von Zellen zeigen.

Du benötigst für diesen Beitrag eine installierte Version der Bibliothek XlsxWriter sowie Python3. Wie du die Bibliothek mit „pip“ installierst und diese Installation testest habe ich dir bereits im ersten Teil gezeigt.

Schriftart & Style

Zunächst zeige ich dir die verschiedenen Möglichkeiten wie du Texte stylen kannst.

import xlsxwriter

#erstellen eines Workbook Objektes mit dem Dateinamen "testMappe.xlsx"
workbook = xlsxwriter.Workbook('testFormatMappe.xlsx')

#erstellen eines Tabellenblattes mit dem
#Namen "Tabellenname"
worksheet = workbook.add_worksheet('Tabellenname')

#erstellen des Zellenformates für Fett-Schrift
boldCellFormat = workbook.add_format()
boldCellFormat.set_bold()

#erstellen des Zellenformates für Kursiv-Schrift
italicCellFormat = workbook.add_format()
italicCellFormat.set_italic()

#erstellen des Zellenformates für Unterstrichene-Schrift
underlineCellFormat = workbook.add_format()
underlineCellFormat.set_underline()

#erstellen des Zellenformates für Fett, Kursiv und Unterstrichene-Schrift
multiCellFormat = workbook.add_format()
multiCellFormat.set_bold()
multiCellFormat.set_italic()
multiCellFormat.set_underline()

#schreiben eines Textes in die Zelle mit einem Zellenformat
worksheet.write('A1', 'Hier steht ein fetter Text.', boldCellFormat)
worksheet.write('A3', 'Hier steht ein kursiver Text.', italicCellFormat)
worksheet.write('A5', 'Hier steht ein unterstrichener Text.', underlineCellFormat)
worksheet.write('A7', 'Hier steht ein fetter, kursiver und unterstrichener Text.', multiCellFormat)

#schließen des Workbooks
workbook.close()
Schriftformatierung mit XlsxWriter und Python3 in einer Microsoft Excel Mappe
Schriftformatierung mit XlsxWriter und Python3 in einer Microsoft Excel Mappe

Schriftart, Schriftgröße und Farbe

Bei der Schriftart würde ich empfehlen auf die von Microsoft Excel mitgelieferten zurück zu greifen denn ansonsten müßte die zusätzliche Schriftart ggf. mit der Mappe mitgeliefert werden.

import xlsxwriter

#erstellen eines Workbook Objektes mit dem Dateinamen "testMappe.xlsx"
workbook = xlsxwriter.Workbook('testFormatMappe.xlsx')

#erstellen eines Tabellenblattes mit dem
#Namen "Tabellenname"
worksheet = workbook.add_worksheet('Tabellenname')

#Zellenformat mit Schriftart "Verdana" und Schriftgröße 12
verdana12fontCellFormat = workbook.add_format()
verdana12fontCellFormat.set_font_name('Verdana')
verdana12fontCellFormat.set_font_size(12)

#Zellenformat mit Schriftart "Arial" und Schriftgröße 18
arial18fontCellFormat = workbook.add_format()
arial18fontCellFormat.set_font_name('Arial')
arial18fontCellFormat.set_font_size(18)

#Zellenformat mit Schriftart "Times New Roman" und Schriftgröße 22
timesNewRoman22fontCellFormat = workbook.add_format()
timesNewRoman22fontCellFormat.set_font_name('Times New Roman')
timesNewRoman22fontCellFormat.set_font_size(22)

worksheet.write('A1', 'Hier ein Text in Verdana, Schriftgröße 12.', verdana12fontCellFormat)

worksheet.write('A3', 'Hier ein Text in Arial, Schriftgröße 18.', arial18fontCellFormat)

worksheet.write('A5', 'Hier ein Text in Times New Roman, Schriftgröße 22.', timesNewRoman22fontCellFormat)

#schließen des Workbooks
workbook.close()
Texte mit individueller Schriftart und Größe
Texte mit individueller Schriftart und Größe

Schriftfarbe

Um dem Text bzw. den Wert einer Zelle eine Farbe zuzuweisen müssen wir unserem Zellenformat lediglich die Farbe mit der Funktion „set_font_color“ übergeben. Eine Liste an möglichen Farbwerten findest du im Abschnitt „Hintergrundfarbe“ in diesem Beitrag.

import xlsxwriter

#erstellen eines Workbook Objektes mit dem Dateinamen "testMappe.xlsx"
workbook = xlsxwriter.Workbook('testFormatMappe.xlsx')

#erstellen eines Tabellenblattes mit dem
#Namen "Tabellenname"
worksheet = workbook.add_worksheet('Tabellenname')

#Schriftfarbe "rot"
redFontColorCellFormat = workbook.add_format()
redFontColorCellFormat.set_font_color('red')

worksheet.write('C3', 'Ein kurzer Text.', redFontColorCellFormat)

#schließen des Workbooks
workbook.close()
Excel Mappe mit rotem Text
Excel Mappe mit rotem Text

Rahmen

In diesem Abschnitt zeige ich dir nun wie du einen Rahmen um eine Zelle erstellen kannst.

import xlsxwriter

#erstellen eines Workbook Objektes mit dem Dateinamen "testMappe.xlsx"
workbook = xlsxwriter.Workbook('testFormatMappe.xlsx')

#erstellen eines Tabellenblattes mit dem
#Namen "Tabellenname"
worksheet = workbook.add_worksheet('Tabellenname')

#Zellenformat für einen kompletten Rahmen
borderCellFormat = workbook.add_format()
borderCellFormat.set_border()

#Zellenformat für einen Rahmen mit nur oben & unten
bottomTopBorderCellFormat = workbook.add_format()
bottomTopBorderCellFormat.set_bottom()
bottomTopBorderCellFormat.set_top()

#Zellenformat für einen farbigen Rahmen
borderColorCellFormat = workbook.add_format()
borderColorCellFormat.set_border()
borderColorCellFormat.set_top_color('red')
borderColorCellFormat.set_bottom_color('blue')
borderColorCellFormat.set_left_color('green')
borderColorCellFormat.set_right_color('black')

worksheet.write('C3', 'Ein kurzer Text.', borderCellFormat)

worksheet.write('C5', 'Ein kurzer Text.', bottomTopBorderCellFormat)

worksheet.write('C7', 'Ein kurzer Text.', borderColorCellFormat)


#schließen des Workbooks
workbook.close()
Zellenrahmen definieren
Zellenrahmen definieren

Farben

Farben können an Text, Zellenhintergrund individuell gesetzt werden (wie in Excel auch). 

Hintergrundfarbe 

Zunächst setzen wir die Hintergrundfarbe einer Zelle. Wir können zum einen Namen für die Farbwerte wählen und zum anderen Hex Werte

Zulässige Werte für Namen sind: 

  • black
  • blue
  • brown
  • cyan
  • gray
  • green
  • lime
  • magenta
  • navy
  • orange
  • pink
  • purple
  • red
  • silver
  • white
  • yellow

Die Hex Werte kann man zbsp. über die Webseite https://www.color-hex.com/ entnehmen.

definieren der Hintergrundfarbe über einen Namen

#Hintergrundfarbe mit einem Namen definieren
redBgColorCellFormat = workbook.add_format()
redBgColorCellFormat.set_bg_color('red')

definieren der Hintergrundfarbe über einen Hexadezimal Wert

#Hintergrundfarbe mit einem Hex Wert definieren
greenBgColorCellFormat = workbook.add_format()
greenBgColorCellFormat.set_bg_color('#9ea257')
Excel - Zellen mit Hintergrundfarbe
Excel – Zellen mit Hintergrundfarbe

Bedingteformatierungen

Nachdem ich nun gezeigt habe wie man an einer Zelle einen bestimmten Farbwert setzt möchte ich nun gerne zeigen wie du einen von dem Zellenwert abhängigen Farbwert setzt. Dieses kannst du mit einer Bedingtenformatierung erledigen. 

Zunächst erstellen wir uns eine Tabelle mit verschiedenen Zellenwerten (Zahlen und Buchstaben)

import xlsxwriter

#erstellen eines Workbook Objektes mit dem Dateinamen "testMappe.xlsx"
workbook = xlsxwriter.Workbook('testBedFormatMappe.xlsx')
worksheet = workbook.add_worksheet('Tabellenname')

#eine mehrdimensionale Liste mit Namen, Geschlecht und Alter
personen = [['Max Mustermann','m', 32], ['Erika Müller','w', 23], ['Roman Tisch', 'm', 45], ['Birgit Gross', 'w', 67]]

#schreiben der Tabellenköpfe
worksheet.write('A1', 'Name')
worksheet.write('B1', 'Geschlecht')
worksheet.write('C1', 'Alter')

#Variable zum speichern der Zeilennummer
row = 2;
#die mehrdimensionale Liste durchlaufen
for name, gender, age in personen:
    #schreiben der Werte in die Tabelle
    worksheet.write('A'+str(row), name)
    worksheet.write('B'+str(row), gender)
    worksheet.write('C'+str(row), age)
    row = row + 1

#erzeugnen eines Zellenformates für das Geschlecht "weiblich (w)"
redColor = workbook.add_format()
redColor.set_bg_color('#ffb2b2')

#erzeugen eiens Zellenformates für das Geschlecht "männlich (m)"
blueColor = workbook.add_format()
blueColor.set_bg_color('#ccccff')
    
#setzen einer Bedingtenzellenformatierung in dem Bereich B2 bis B-Zeilenende
#wenn der Zellenwert "w" ist
worksheet.conditional_format('B2:B'+str(row), 
                             {'type':     'cell',
                              'criteria': '==',
                              'value':    '"w"',
                              'format':   redColor})

#setzen einer Bedingtenzellenformatierung in dem Bereich B2 bis B-Zeilenende
#wenn der Zellenwert "m" ist
worksheet.conditional_format('B2:B'+str(row), 
                             {'type':     'cell',
                              'criteria': '==',
                              'value':    '"m"',
                              'format':   blueColor})

#die Spalte alter wird mit einem farbigen Wert versehen welcher von Grau bis Rot reicht.
worksheet.conditional_format('C2:C'+str(row), 
                            {'type': '2_color_scale',
                             'min_color': 'gray',
                             'max_color': 'red'})

#schließen des Workbooks
workbook.close()
Bedingteformatierung in einer Excel Tabelle
Bedingteformatierung in einer Excel Tabelle

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.