styles.fonts【フォント】モジュール
メモ ( 概要 基本 ) 例
Font【フォント】クラス: クラス定義 定数 プロパティ メソッド
メモ
概要
- フォントに関連するモジュール
- Excelの [セルの書式設定]-[フォント]タブ に対応
- Excelの [セルの書式設定]-[フォント]タブ に対応
- モジュール内定義
- Font【フォント】クラス
- インポート
- 下記は、openpyxl.styles からインポート可
Font【フォント】クラス
- 下記は、openpyxl.styles からインポート可
- その他スタイルは、cell【セル】モジュール 参照 (個々の詳細は下記モジュール)
- styles.numbers【表示形式】 ・styles.alignment【配置】 ・styles.borders【罫線】 ・styles.fills【塗りつぶし】 ・styles.protection【シート保護】
- 背景色は、styles.fills【塗りつぶし】参照
- 関連モジュール
基本
〔 例 〕- Cell【セル】の font【フォント】 プロパティに対応
- 変更する場合は、Font【フォント】を新規作成し設定 (下記の引数を指定)
- フォント名:name
- スタイル (斜体):italic または i
- スタイル (太字):bold または b
- サイズ:size または sz
- 下線:underline または u (定数定義あり)
- 色:color
- 文字飾り (取り消し線):strikethrough または strike
- 文字飾り (上付き・下付き):vertAlign
外部リンク
- openpyxl (英語)
- ECMA-376:Office Open XML file formats (英語)
SpreadsheetML:Styles -- b (Bold)
- i (Italic)
- name (Font Name)
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' | 下線 (会計) |
プロパティ
プロパティ | 型 | 備考 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
b | bool | 太字の指定有無 | ||||||||
bold | bool | b【太字の指定有無】のエイリアス | ||||||||
charset | int | |||||||||
color | Color | 色 | ||||||||
condense | bool | |||||||||
extend | bool | |||||||||
family | ||||||||||
i | bool | 斜体の指定有無 | ||||||||
italic | bool | i【斜体の指定有無】のエイリアス | ||||||||
name | str | フォント名 | ||||||||
outline | bool | |||||||||
scheme | str | |||||||||
shadow | bool | |||||||||
size | float | sz【サイズ】のエイリアス | ||||||||
strike | bool | 取り消し線の指定有無 | ||||||||
strikethrough | bool | strike【取り消し線の指定有無】のエイリアス | ||||||||
sz | float | サイズ | ||||||||
tagname | str | タグ名 ("font") | ||||||||
u | str | 下線 (下線定数 参照) | ||||||||
underline | u【下線】のエイリアス | |||||||||
vertAlign | str | 上付き・下付き
|
メソッド
クラスメソッド | 備考 |
---|---|
@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)