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:

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

If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow