ぱいそん openpyxl
# python
# openpyxl
# セル内のセンタリング
# 水平垂直
にゃあ~~~ご;;
うまく
書式設定できない
【Gemini】様に
泣きついた;;
# ==== 【Gemini】様
`horizontal="center"`
と
`horizontal="centerContinuous"`
は、Excelの「文字の配置」における役割が異なります。
1. 2つの設定の違い
* `horizontal="center"`(標準の中央揃え)
* セル単体の中で文字を左右中央に配置します。一般的な中央揃えです。
* `horizontal="centerContinuous"`(選択範囲内で中央)
* Excelの「選択範囲内で中央」(Center Across Selection)の機能です。セル結合を行わずに、選択した連続するセル群の中央に文字を表示したい場合に使います。
2. コード記述時の重要な注意点(上書き問題)
提示していただいたコードでは、
`Alignment` を毎回新しく生成して代入しているため、
直前の設定が上書きされて消えてしまいます。
# ✕ 間違った書き方(最後の vertical="center" だけが有効になり、水平方向がリセットされる)
cell.alignment = Alignment(horizontal="centerContinuous")
cell.alignment = Alignment(horizontal="center")
cell.alignment = Alignment(vertical="center")
3. 目標(上下左右の中央揃え)
を達成する正しい書き方
水平方向・垂直方向の両方を中央に揃える場合は、1つの `Alignment`
オブジェクトにまとめて指定します。
from openpyxl.styles import Alignment
# A1:K2 の範囲を上下左右中央揃えにする
for row in ws["A1:K2"]:
for cell in row:
cell.alignment = Alignment(horizontal="center", vertical="center")
# ==============================
にゃあ;;
じじぃ~