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)

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

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