Alle Spalten im pandas-XLSX-Export zentrieren

English Deutsch

In unserem vorherigen Beitrag Spalte im pandas-XLSX-Export zentrieren haben wir gezeigt, wie man eine bestimmte Spalte in einem XLSX-Export zentriert.

In diesem Beitrag zeigen wir, wie alle Spalten in einem pandas DataFrame-XLSX-Export zentriert werden. Beachten, dass sich die Varianten mit und ohne Index hier nur in der Spaltenindex-Berechnung unterscheiden. Pandas zentriert die Indexspalte automatisch, daher muss dies nicht explizit gemacht werden.

Für Export mit Index

center_all_columns.py
# Center all columns
for column_idx in range(len(df.columns)):
    for cell in sheet[openpyxl.utils.cell.get_column_letter(column_idx + 1)]:
        cell.alignment = Alignment(horizontal="center")

Für Export ohne Index

center_all_columns_no_index.py
# Center all columns
for column_idx in range(len(df.columns)):
    for cell in sheet[openpyxl.utils.cell.get_column_letter(column_idx + 1)]:
        cell.alignment = Alignment(horizontal="center")

Vollständiges Beispiel:

pandas_center_example.py
import pandas as pd
import openpyxl.utils.cell
from openpyxl.styles.alignment import Alignment

df = pd.DataFrame([
    {"a": 1.0},
    {"a": 2.0},
    {"a": 3.0},
    {"a": 4.0},
    {"a": 5.0},
])
with pd.ExcelWriter("out.xlsx", engine="openpyxl") as writer:
    sheet_name = "Bool"
    # Export DataFrame content
    df.to_excel(writer, sheet_name=sheet_name)
    # Align to center
    sheet = writer.sheets[sheet_name]
    # Center all columns
    for column_idx in range(len(df.columns) + 1):
        for cell in sheet[openpyxl.utils.cell.get_column_letter(column_idx + 1)]:
            cell.alignment = Alignment(horizontal="center")

Die Tabelle sieht mit aktivierter Zentrierung so aus:

pandas-XLSX-Export mit allen Spalten zentriert

während die Tabelle mit deaktiviertem Zentrierungscode rechtsbündig ist und nur der Titel von Pandas zentriert wird – beachten, dass die Indexspalte automatisch zentriert wird

pandas-XLSX-Export mit standardmäßig rechtsbündigen Spalten und ohne Zentrierung


Check out similar posts by category: OpenPyXL, Pandas, Python