styles.alignment【配置】モジュール

メモ ( 概要 基本 文字の配置 文字の制御・改行 方向 (文字列の回転・縦書き) 右から左 ) Alignment【配置】クラス

メモ

概要

基本

文字の配置

文字の制御・改行

方向 (文字列の回転・縦書き)

右から左


Alignment【配置】クラス

クラス定義

クラス備考
親:openpyxl.descriptors.serialisable.Serialisable
インポート:from openpyxl.styles import Alignment (省略形)
class Alignment(
    horizontal=None,
    vertical=None,
    textRotation=0,
    wrapText=None,
    shrinkToFit=None,
    indent=0,
    relativeIndent=0,
    justifyLastLine=None,
    readingOrder=0,
    text_rotation=None,
    wrap_text=None,
    shrink_to_fit=None,
    mergeCell=None)
配置
horizontal (str)横位置
vertical (str)縦位置
textRotation (int)文字列の回転・縦書き (text_rotation)
wrapText (bool)[折り返して全体表示]の指定有無 (wrap_text)
shrinkToFit (bool)[縮小して全体表示]の指定有無 (shrink_to_fit)
indent (float)インデント
relativeIndent (float)
justifyLastLine (bool)[前後にスペース]の指定有無
readingOrder (float)文字の方向
text_rotation (int)文字列の回転・縦書き (優先)
wrap_text (bool)[折り返して全体表示]の指定有無 (優先)
shrink_to_fit (bool)[縮小して全体表示]の指定有無 (優先)
mergeCell

操作

操作備考
for attr in Alignment 繰り返し処理
attrプロパティ情報 (プロパティと値のtuple)
※設定分のみ

プロパティ

プロパティ備考
horizontalstr 横位置
横位置備考
'fill'繰り返し
'left'左詰め (インデント)
'distributed'均等割り付け (インデント)
均等割り付け
'general'標準
'centerContinuous'選択範囲内で中央
(選択範囲の全セルに指定)
'justify'両端揃え
'center'中央揃え
'right'右詰め (インデント)
indentfloatインデント
justifyLastLinebool [前後にスペース]指定有無
横位置が 'distributed'【均等割り付け】で指定可
indent【インデント】が優先
readingOrderfloat 文字の方向
(アラビア語等で対応)
備考
0.0最初の文字に依存
1.0左から右
2.0右から左
relativeIndentfloat
shrinkToFitbool[縮小して全体表示]の指定有無
shrink_to_fitboolshrinkToFit【[縮小して全体表示]の指定有無】のエイリアス
tagnamestrタグ名 ('alignment')
textRotation int
(0 ~ 180・255)
文字列の回転・縦書き
0 ~ 90:0度 ~ 90度
91 ~ 180:-1度 ~ -90度
255:縦書き
text_rotationint
(0 ~ 180・255)
textRotation【文字列の回転・縦書き】のエイリアス
verticalstr 縦位置
縦位置備考
'top'上詰め
'center'中央揃え
'bottom'下詰め
'justify'両端揃え
'distributed'均等割り付け
wrapTextbool[折り返して全体表示]の指定有無
(改行を有効にする場合に指定)
wrap_textboolwrapText【[折り返して全体表示]の指定有無】のエイリアス

基本

from openpyxl import Workbook
from openpyxl.styles import Alignment
from openpyxl.utils import get_column_letter

# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
ws.column_dimensions[get_column_letter(1)].width = 2

# 横位置
col = 2
horizontals = {
    'fill': '繰り返し',
    'left': '左詰め (インデント)',
    'distributed': '均等割り付け (インデント)',
    'general': '標準',
    'centerContinuous': '選択範囲内で中央',
    'justify': '両端揃え '*10,
    'center': '中央揃え',
    'right': '右詰め (インデント)',
}
ws.cell(2, col).value = '横位置'
ws.cell(3, col).value = 'horizontal'
ws.column_dimensions[get_column_letter(col)].width = 15
ws.column_dimensions[get_column_letter(col + 1)].width = 30
row = 5
for h, value in horizontals.items():
    cell = ws.cell(row, col, h)
    alignment = Alignment(
        vertical='center',
    )
    cell.alignment = alignment
    cell = ws.cell(row, col + 1, value)
    alignment = Alignment(
        horizontal=h,
        vertical='center',
    )
    cell.alignment = alignment
    if h == 'centerContinuous':
        cell = ws.cell(row, col + 2)
        cell.alignment = alignment
    row += 1

# 縦位置
col += 3
verticals = {
    'top': '上詰め',
    'center': '中央揃え',
    'bottom': '下詰め',
    'justify': '両端揃え' * 3,
    'distributed': '均等割り付け' * 2,
}
ws.cell(2, col).value = '縦位置'
ws.cell(3, col).value = 'vertical'
row = 5
for v, value in verticals.items():
    cell = ws.cell(row, col, v)
    alignment = Alignment(
        vertical='center',
    )
    cell.alignment = alignment
    cell = ws.cell(row, col + 1, value)
    alignment = Alignment(
        vertical=v,
    )
    cell.alignment = alignment
    row += 1

# 文字列の回転・縦書き
col += 3
rotations = [0, 30, 45, 60, 90, 120, 135, 150, 180, 255]
VALUE = '文字列'
ws.cell(2, col).value = '文字列の回転'
ws.cell(3, col).value = 'textRotation / text_rotation'
for i in range(len(rotations)):
    row = i + 5
    ws.row_dimensions[row].height = 50
    cell = ws.cell(row, col, rotations[i])
    alignment = Alignment(
        vertical='center',
    )
    cell.alignment = alignment
    cell = ws.cell(row, col + 1, VALUE)
    alignment = Alignment(
        horizontal='center',
        vertical='center',
        textRotation=rotations[i],
    )
    cell.alignment = alignment

# ワークブック保存
wb.save(WORKBOOK)

alignment【配置】のサンプル画像