styles.fonts【フォント】モジュール

メモ ( 概要 基本 )
Font【フォント】クラスクラス定義 定数 プロパティ メソッド

メモ

概要

基本

  • Cell【セル】font【フォント】 プロパティに対応
  • 変更する場合は、Font【フォント】を新規作成し設定 (下記の引数を指定)
    • フォント名:name
    • スタイル (斜体):italic または i
    • スタイル (太字):bold または b
    • サイズ:size または sz
    • 下線:underline または u (定数定義あり)
    • 色:color
    • 文字飾り (取り消し線):strikethrough または strike
    • 文字飾り (上付き・下付き):vertAlign

Font【フォント】クラス

クラス定義

クラス備考
親:openpyxl.descriptors.serialisable.Serialisable
インポート:from openpyxl.styles import Font (省略形)
class Font(
    name=None,
    sz=None,
    b=None,
    i=None,
    charset=None,
    u=None,
    strike=None,
    color=None,
    scheme=None,
    family=None,
    size=None,
    bold=None,
    italic=None,
    strikethrough=None,
    underline=None,
    vertAlign=None,
    outline=None,
    shadow=None,
    condense=None,
    extend=None)
フォント
name (str)フォント名
sz (float)サイズ (size)
b (bool)太字の指定有無 (bold)
i (bool)斜体の指定有無 (italic)
charset
u (str)下線 (underline)
strike (bool)取り消し線の指定有無 (strikethrough)
color (Color | str)
scheme
family
size (float)サイズ (優先)
bold (bool)太字の指定有無 (優先)
italic (bool)斜体の指定有無 (優先)
strikethrough (bool)取り消し線の指定有無 (優先)
underline (str)下線 (優先)
vertAlign (str)上付き・下付き
outline
shadow
condense
extend

定数

定数備考
下線
UNDERLINE_DOUBLE'double'二重下線
UNDERLINE_DOUBLE_ACCOUNTING'doubleAccounting'二重下線 (会計)
UNDERLINE_SINGLE'single'下線
UNDERLINE_SINGLE_ACCOUNTING'singleAccounting'下線 (会計)

プロパティ

プロパティ備考
bbool太字の指定有無
boldboolb【太字の指定有無】のエイリアス
charsetint
colorColor
condensebool
extendbool
family
ibool斜体の指定有無
italicbooli【斜体の指定有無】のエイリアス
namestrフォント名
outlinebool
schemestr
shadowbool
sizefloatsz【サイズ】のエイリアス
strikebool取り消し線の指定有無
strikethroughboolstrike【取り消し線の指定有無】のエイリアス
szfloatサイズ
tagnamestrタグ名 ("font")
ustr下線 (下線定数 参照)
underlineu【下線】のエイリアス
vertAlignstr 上付き・下付き
備考
'superscript'上付き
'subscript'下付き
'baseline'指定なし

メソッド

クラスメソッド備考
@classmethod from_tree(
    node)

node

基本

from openpyxl import Workbook
from openpyxl.styles import Font

# 各種定数
WORKBOOK = 'sample.xlsx'
VALUE = 'string (文字列)'
VALUE_2 = VALUE + ' 1,234,567'
ROW_1 = 4
ROW_2 = 22
ROW_3 = 37
FONT_TITLE = Font(bold=True)

# ワークブック作成
wb = Workbook()
ws = wb.active
ws.column_dimensions['A'].width = 2
ws.column_dimensions['B'].width = 24
ws.column_dimensions['C'].width = 18
ws.column_dimensions['D'].width = 20

# 各種設定
font = Font(
    name='Meiryo UI',
    italic=True,
    bold=True,
    size=16,
    underline=Font.UNDERLINE_DOUBLE_ACCOUNTING,
    color='00FF0000',
    strikethrough=True,
    vertAlign='baseline',
)
ws['B2'] = VALUE
ws['B2'].font = font

# フォント名
col = 2
font_names = ['Century', 'Meiryo UI', 'Times New Roman']
ws.cell(ROW_1, col).value = 'フォント名'
ws.cell(ROW_1, col).font = FONT_TITLE
ws.cell(ROW_1 + 1, col).value = 'name'
ws.cell(ROW_1 + 1, col).font = FONT_TITLE
for i in range(len(font_names)):
    row = ROW_1 + 3 + i * 3
    ws.cell(row, col, font_names[i])
    cell = ws.cell(row + 1, col, VALUE)
    cell.font = Font(name=font_names[i])

# スタイル (太字・斜体)
col += 1
ws.cell(ROW_1, col).value = '太字・斜体'
ws.cell(ROW_1, col).font = FONT_TITLE
ws.cell(ROW_1 + 1, col).value = 'bold・italic'
ws.cell(ROW_1 + 1, col).font = FONT_TITLE
ws.cell(ROW_1 + 3, col).value = '標準'
cell = ws.cell(ROW_1 + 4, col, VALUE)
cell.font = Font(bold=False, italic=False)
ws.cell(ROW_1 + 6, col).value = '斜体'
cell = ws.cell(ROW_1 + 7, col, VALUE)
cell.font = Font(italic=True)
ws.cell(ROW_1 + 9, col).value = '太字'
cell = ws.cell(ROW_1 + 10, col, VALUE)
cell.font = Font(bold=True)
ws.cell(ROW_1 + 12, col).value = '太字 斜体'
cell = ws.cell(ROW_1 + 13, col, VALUE)
cell.font = Font(bold=True, italic=True)

# サイズ
font_sizes = [8, 10, 12, 14, 16]
col += 1
ws.cell(ROW_1, col).value = 'サイズ'
ws.cell(ROW_1, col).font = FONT_TITLE
ws.cell(ROW_1 + 1, col).value = 'size'
ws.cell(ROW_1 + 1, col).font = FONT_TITLE
for i in range(len(font_sizes)):
    row = ROW_1 + 3 + i * 3
    ws.cell(row, col, font_sizes[i])
    cell = ws.cell(row + 1, col, VALUE)
    cell.font = Font(size=font_sizes[i])

# 下線
font_underlines = [
    Font.UNDERLINE_DOUBLE,
    Font.UNDERLINE_DOUBLE_ACCOUNTING,
    Font.UNDERLINE_SINGLE,
    Font.UNDERLINE_SINGLE_ACCOUNTING,
]
col = 2
ws.cell(ROW_2, col).value = '下線'
ws.cell(ROW_2, col).font = FONT_TITLE
ws.cell(ROW_2 + 1, col).value = 'underline'
ws.cell(ROW_2 + 1, col).font = FONT_TITLE
for i in range(len(font_underlines)):
    row = ROW_2 + 3 + i * 3
    ws.cell(row, col, font_underlines[i])
    cell = ws.cell(row + 1, col, VALUE_2)
    cell.font = Font(underline=font_underlines[i])

# 色
font_colors = ['00000000', '00FF0000', '0000FF00', '000000FF']
col += 1
ws.cell(ROW_2, col).value = '色'
ws.cell(ROW_2, col).font = FONT_TITLE
ws.cell(ROW_2 + 1, col).value = 'color'
ws.cell(ROW_2 + 1, col).font = FONT_TITLE
for i in range(len(font_colors)):
    row = ROW_2 + 3 + i * 3
    ws.cell(row, col, font_colors[i])
    cell = ws.cell(row + 1, col, VALUE)
    cell.font = Font(color=font_colors[i])

# 文字飾り (取り消し線)
font_strikethroughs = [True, False]
col = 2
ws.cell(ROW_3, col).value = '取り消し線'
ws.cell(ROW_3, col).font = FONT_TITLE
ws.cell(ROW_3 + 1, col).value = 'strikethrough'
ws.cell(ROW_3 + 1, col).font = FONT_TITLE
for i in range(len(font_strikethroughs)):
    row = ROW_3 + 3 + i * 3
    ws.cell(row, col, str(font_strikethroughs[i]))
    cell = ws.cell(row + 1, col, VALUE)
    cell.font = Font(strikethrough=font_strikethroughs[i])

# 文字飾り (上付き・下付き)
font_vertAligns = ['superscript', 'subscript', 'baseline']
col += 1
ws.cell(ROW_3, col).value = '上付き・下付き'
ws.cell(ROW_3, col).font = FONT_TITLE
ws.cell(ROW_3 + 1, col).value = 'vertAlign'
ws.cell(ROW_3 + 1, col).font = FONT_TITLE
for i in range(len(font_vertAligns)):
    row = ROW_3 + 3 + i * 3
    ws.cell(row, col, font_vertAligns[i])
    cell = ws.cell(row + 1, col, VALUE)
    cell.font = Font(vertAlign=font_vertAligns[i])

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

例-フォント