styles.named_styles【名前付きセルスタイル】モジュール

メモ ( 概要 ユーザー設定セルスタイル 注意事項 )
クラス: NamedStyle【名前付きセルスタイル】 NamedStyleList【名前付きセルスタイル リスト】

メモ

概要

ユーザー設定セルスタイル

注意事項

  • セルのスタイル設定後にスタイル変更が可能、但し対応セルは自動更新なし
    • スタイル変更は、Excel のスタイルのダイアログで確認可能
    • 更新方法1:全ての対象セルのスタイルにスタイル名を再設定
    • 更新方法2:Excel 上で変更 (自動的に対象セル更新)

NamedStyle【名前付きセルスタイル】クラス

メモ

クラス定義

クラス備考
親:openpyxl.descriptors.serialisable.Serialisable
インポート:from openpyxl.styles import NamedStyle (省略形)
class NamedStyle(
    name="Normal",
    font=Font(),
    fill=PatternFill(),
    border=Border(),
    alignment=Alignment(),
    number_format=None,
    protection=Protection(),
    builtinId=None,
    hidden=False,
    xfId=None)
名前付きセルスタイル
nameスタイル名
font (Font)フォント
fill (Fill)塗りつぶし
border (Border)罫線
alignment (Alignment)配置
number_format (str)表示形式
protection (Protection)セル保護
builtinId (int)組み込みセルスタイルId
hidden (bool)アプリケーション UI 非表示指定
xfId (int)マスター書式レコードId

プロパティ

プロパティ備考
alignmentAlignment配置
borderBorder罫線
builtinIdint組み込みセルスタイルId (内部使用)
fill Fill
(GradientFill)
(PatternFill)
塗りつぶし
fontFontフォント
hiddenboolアプリケーション UI 非表示指定 (スタイルのダイアログへの追加有無指定)
namestrスタイル名
number_format str 表示形式 (None 設定:'General'【G/標準】)
protectionProtectionセル保護
xfId intマスター書式レコードId (内部使用)

操作

操作備考
for key, value in NamedStyle : 繰り返し処理
戻り値一部プロパティの名前・値の tuple
keyプロパティ名
valueプロパティ値
対象プロパティ:
name【スタイル名】
builtinId【組み込みセルスタイルId】
hidden【アプリケーション UI 非表示指定】
xfId【マスター書式レコードId】

メソッド

メソッド備考
as_name( )

as_tuple( )

as_xf( )

bind(wb) ワークブック関連付け
wbWorkbook【ワークブック】

NamedStyleList【名前付きセルスタイル リスト】クラス

メモ

  • 内部使用

クラス定義

クラス備考
親:list
class NamedStyleList( ) 名前付きセルスタイル リスト

プロパティ

プロパティ備考
names list[ str ]セルスタイル名 リスト

操作

操作備考
NamedStyleList [key] NamedStyle【名前付きセルスタイル】取得
keyセルスタイル名

メソッド

メソッド備考
append(style) セルスタイル追加
style (NamedStyle)名前付きセルスタイル

ユーザー設定セルスタイル

from openpyxl import Workbook
from openpyxl.styles import NamedStyle
from openpyxl.styles import Font
from openpyxl.styles import PatternFill, fills
from openpyxl.styles import Border, Side, borders
from openpyxl.styles import Alignment

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

# 共通項目
alignment = Alignment(horizontal='center', vertical='center')
font_white = Font(color='FFFFFFFF', size=14, bold=True)
font_black = Font(color='FF000000', size=14, bold=True)

# スタイル1
STYLE_1 = 'スタイル1'
side = Side(borders.BORDER_DOTTED, 'FFFF0000')
border = Border(side, side, side, side)
fill = PatternFill(fills.FILL_SOLID, 'FFE0E0E0')
style = NamedStyle(
    STYLE_1,
    fill=fill,
    border=border,
    alignment=alignment,
)
wb.add_named_style(style)
ws['B2'] = STYLE_1
ws['B2'].style = STYLE_1

# スタイル2
STYLE_2 = 'スタイル2'
side = Side(borders.BORDER_DOUBLE, 'FFFF0000')
border = Border(side, side, side, side)
fill = PatternFill(fills.FILL_SOLID, 'FFE0E0E0')
style = NamedStyle(
    STYLE_2,
    fill=fill,
    border=border,
    alignment=alignment,
)
wb.add_named_style(style)
ws['B3'] = STYLE_2
ws['B3'].style = STYLE_2

# ユーザー設定セルスタイル
list_style = [
    ['UserAqua', 'FF00FFFF', font_black],
    ['UserBlack', 'FF000000', font_white],
    ['UserBlue', 'FF0000FF', font_white],
    ['UserFuchsia', 'FFFF00FF', font_white],
    ['UserGray', 'FF808080', font_white],
    ['UserGreen', 'FF008000', font_white],
    ['UserLime', 'FF00FF00', font_black],
    ['UserMaroon', 'FF800000', font_white],
    ['UserNavy', 'FF000080', font_white],
    ['UserOlive', 'FF808000', font_white],
    ['UserPurple', 'FF800080', font_white],
    ['UserRed', 'FFFF0000', font_white],
    ['UserSilver', 'FFC0C0C0', font_black],
    ['UserTeal', 'FF008080', font_white],
    ['UserWhite', 'FFFFFFFF', font_black],
    ['UserYellow', 'FFFFFF00', font_black],

    ['UserOrange', 'FFFFA500', font_black],
]
row = 5
for lst in list_style:
    style = NamedStyle(
        lst[0],
        font=lst[2],
        fill=PatternFill(fills.FILL_SOLID, lst[1]),
        alignment=alignment,
    )
    wb.add_named_style(style)
    cell = ws.cell(row, 2, lst[0])
    cell.style = lst[0]
    row += 1

# セルスタイル名 リスト
print(wb.named_styles)
# 出力:
# ['Normal', 'スタイル1', (省略) 'UserYellow', 'UserOrange']
print(wb.style_names)
# 出力:
# ['Normal', 'スタイル1', (省略) 'UserYellow', 'UserOrange']

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

ユーザー設定セルスタイルのサンプル画像

ユーザー設定セルスタイル追加[組み込みセルスタイル]ダイアログ