cell.cell【セル】モジュール
メモ ( 概要 値の取得・設定 数式の取得・設定 コメント 表示形式 配置 フォント・テキスト色 罫線 塗りつぶし ハイパーリンク )
定数 関数 Cell【セル】クラス MergedCell【結合セル】クラス 例
メモ
概要
- Excel のセルに対応
- モジュール内定義
- 定数
- 関数
- Cell【セル】クラス
- MergedCell【結合セル】クラス
- 下記については workbook【ワークブック】モジュール 参照
- 下記については worksheet【ワークシート】モジュール 参照
- 下記については worksheet.views【ビュー】モジュール 参照
- 関連モジュール
値の取得・設定
〔 例 〕- 取得・設定:value【値】プロパティ
- 設定:Worksheet【ワークシート】の worksheet[address] = value【セル値 設定】操作
- 設定:Worksheet【ワークシート】の cell【セルオブジェクト取得】メソッドで値指定
- 反復処理
- worksheet【ワークシート】モジュール の セルの参照 を参照
数式の取得・設定
〔 例 〕- 上記の 値の取得・設定 で値の代わりに数式指定
コメント
〔 例 〕- 取得・設定:comment【コメント】プロパティ
- 削除:comment【コメント】プロパティに None 設定
スタイルー表示形式
- Excelの [セルの書式設定]-[表示形式]タブ に対応
- セルの number_format【表示形式】プロパティに表示形式を指定
- 詳細は、styles.numbers【表示形式】モジュール 参照
スタイルー配置
- Excelの [セルの書式設定]-[配置]タブ に対応
- セルの alignment【配置】プロパティに Alignment【配置】を指定
- 詳細は、styles.alignment【配置】モジュール 参照
スタイルーフォント・テキスト色
- Excelの [セルの書式設定]-[フォント]タブ に対応
- セルの font【フォント】プロパティに Font【フォント】指定
- 詳細は、styles.fonts【フォント】モジュール 参照
スタイルー罫線
- Excelの [セルの書式設定]-[罫線]タブ に対応
- セルの border【罫線】プロパティに Border【罫線】指定
- 詳細は、styles.borders【罫線】モジュール 参照
スタイルー塗りつぶし
- Excelの [セルの書式設定]-[塗りつぶし]タブ に対応
- セルの fill【塗りつぶし】プロパティに PatternFill【塗りつぶし (パターン)】または GradientFill【塗りつぶし (グラデーション)】を設定
- 詳細は、styles.fills【塗りつぶし】モジュール 参照
ハイパーリンク
- Excel の [挿入] - [リンク]タブ - [ハイパーリンク] に対応
- セルの hyperlink【ハイパーリンク】プロパティを使用 (特殊な動作)
- 詳細は、worksheet.hyperlink【ハイパーリンク】モジュール 参照
外部リンク
- openpyxl (英語)
- ECMA-376:Office Open XML file formats (英語)
SpreadsheetML:- c (Cell)
定数
| 定数 | 値 | 備考 |
|---|---|---|
| TYPE_STRING | 's' | |
| TYPE_FORMULA | 'f' | |
| TYPE_NUMERIC | 'n' | |
| TYPE_BOOL | 'b' | |
| TYPE_NULL | 'n' | |
| TYPE_INLINE | 'inlineStr' | |
| TYPE_ERROR | 'e' | |
| TYPE_FORMULA_CACHE_STRING | 'str' |
関数
| 関数 | 備考 |
|---|---|
| WriteOnlyCell(ws=None, value=None) | |
| get_time_format(t) | |
| get_type(t, value) |
Cell【セル】クラス
クラス定義
| クラス | 備考 |
|---|---|
| 親:openpyxl.styles.styleable.StyleableObject | |
| class Cell( worksheet, row=None, column=None, value=None, style_array=None) | セル worksheetワークシート row行 column列 value値 style_array |
プロパティ
| プロパティ | 型 | 備考 | |
|---|---|---|---|
| 親:class openpyxl.styles.styleable.StyleableObject | |||
| alignment | Alignment【配置】 | 配置 | |
| border | Border【罫線】 (Side【罫線スタイル】) | 罫線 | |
| fill | PatternFill【塗りつぶし (パターン)】 GradientFill【塗りつぶし (グラデーション)】 | 塗りつぶし | |
| font | Font【フォント】 | フォント | |
| has_style | |||
| number_format | str | 表示形式 | |
| parent | |||
| pivotButton | |||
| protection | Protection【保護】 | 保護 | |
| quotePrefix | |||
| style | str (設定:NamedStyle【名前付きセルスタイル】も可) | セルスタイル名 (組み込みセルスタイル・ユーザー設定セルスタイル) | |
| style_id | |||
| class openpyxl.cell.cell.Cell | |||
| base_date | |||
| col_idx | int | 列 | |
| column | int | 列 (1~) | |
| column_letter | str | 列文字列 ('A'~) | |
| comment | Comment【コメント】 | コメント | |
| comment. | author | str | コメントの作成者 |
| height | int | コメントの高さ | |
| text | str | コメントのテキスト | |
| width | int | コメントの幅 | |
| coordinate | str | セルアドレス (例:'B3') | |
| data_type | |||
| encoding | |||
| hyperlink | Hyperlink (設定:str も可) | ハイパーリンク 詳細は、worksheet.hyperlink【ハイパーリンク】モジュール 参照 | |
| internal_value | |||
| is_date | |||
| parent | 親ワークシート | ||
| row | int | 行 (1~) | |
| value | str float int datetime | 値 | |
メソッド
| メソッド | 備考 |
|---|---|
| check_error(value) | |
| check_string(value) | |
| offset(row=0, column=0) |
MergedCell【結合セル】クラス
クラス定義
| クラス | |
|---|---|
| 親:openpyxl.styles.styleable.StyleableObject | |
| class openpyxl.cell.cell.MergedCell( worksheet, row=None, column=None) | 結合セル worksheet row column |
プロパティ
| プロパティ | 型 | 備考 | |
|---|---|---|---|
| 親:class openpyxl.styles.styleable.StyleableObject | |||
| alignment | Alignment【配置】 | 配置 | |
| border | Border【罫線】 (Side【罫線スタイル】) | 罫線 | |
| fill | PatternFill【塗りつぶし (パターン)】 GradientFill【塗りつぶし (グラデーション)】 | 塗りつぶし | |
| font | Font【フォント】 | フォント | |
| has_style | |||
| number_format | str | 表示形式 | |
| parent | |||
| pivotButton | |||
| protection | Protection【保護】 | 保護 | |
| quotePrefix | |||
| style | str (設定:NamedStyle【名前付きセルスタイル】も可) | セルスタイル名 (組み込みセルスタイル・ユーザー設定セルスタイル) | |
| style_id | |||
| class openpyxl.cell.cell.MergedCell | |||
| column | int | 列 (1~) | |
| comment | Comment【コメント】 | コメント | |
| comment. | author | str | コメントの作成者 |
| height | int | コメントの高さ | |
| text | str | コメントのテキスト | |
| width | int | コメントの幅 | |
| coordinate | str | アドレス (例:'B3') | |
| data_type | |||
| hyperlink | ハイパーリンク | ||
| row | int | 行 (1~) | |
| value | None | 値 (なし) | |
例
値の取得・設定
from openpyxl import Workbook
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
# 値の取得・設定 (プロパティ)
ws['B2'].value = 'B-2'
print(ws['B2'].value)
# 出力:B-2
cell = ws['B3']
cell.value = 'B-3'
print(cell.value)
# 出力:B-3
# 値の設定 (セル値設定 操作)
ws['C2'] = 'C-2'
ws['C3'].value = 'C-3' # 参考:プロパティ
# 値の設定 (セルオブジェクト取得メソッド)
cell = ws.cell(2, 4, 'D-2')
# 値の取得 (プロパティ)
print(cell.value)
# 出力:D-2
cell = ws.cell(2, 4)
print(cell.value)
# 出力:D-2
# 反復処理 (参考)
cells = ws['B5:D7']
for row in cells:
for cell in row:
cell.value = f'{cell.column_letter}-{cell.row}'
for row in ws.iter_rows(5, 7, 2, 4, True):
for value in row:
print(value)
# 出力:
# B-5
# C-5
# D-5
# B-6
# C-6
# D-6
# B-7
# C-7
# D-7
# ワークブック保存
wb.save(WORKBOOK)

数式の取得・設定
from openpyxl import Workbook
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
# 値の取得・設定 (プロパティ)
ws['B2'].value = 1
ws['B3'].value = 2
ws['B4'].value = 3
ws['B5'].value = '=SUM(B2:B4)'
print(ws['B5'].value)
# 出力:=SUM(B2:B4)
# 値の設定 (セル値設定 操作)
ws['C2'] = 11
ws['C3'] = 12
ws['C4'] = 13
ws['C5'] = '=SUM(C2:C4)'
# 値の取得 (プロパティ)
cell = ws['C5']
print(cell.value)
# 出力:=SUM(C2:C4)
# 値の設定 (セルオブジェクト取得メソッド)
ws.cell(2, 4, 21)
ws.cell(3, 4, 22)
ws.cell(4, 4, 23)
cell = ws.cell(5, 4, '=SUM(D2:D4)')
# 値の取得 (プロパティ)
print(cell.value)
# 出力:=SUM(D2:D4)
cell = ws.cell(5, 4)
print(cell.value)
# 出力:=SUM(D2:D4)
# ワークブック保存
wb.save(WORKBOOK)

コメント
from openpyxl import Workbook
from openpyxl.comments import Comment
# ワークブック作成
WORKBOOK = 'sample.xlsx'
wb = Workbook()
ws = wb.active
# コメント設定
comment = Comment('コメント1', 'AUTHOR1')
cell = ws['B2']
cell.value = 'B-2'
cell.comment = comment
print(cell.comment)
# 出力:Comment: コメント1 by AUTHOR1
print(cell.comment.text)
# 出力:コメント1
print(cell.comment.author)
# 出力:AUTHOR1
print(cell.comment.height)
# 出力:79
print(cell.comment.width)
# 出力:144
# コメント設定 (サイズ指定)
comment = Comment('コメント2', 'AUTHOR2', 160, 300)
cell = ws['B3']
cell.value = 'B-3'
cell.comment = comment
print(cell.comment)
# 出力:Comment: コメント2 by AUTHOR2
print(cell.comment.text)
# 出力:コメント2
print(cell.comment.author)
# 出力:AUTHOR2
print(cell.comment.height)
# 出力:160
print(cell.comment.width)
# 出力:300
# コメント削除
comment = Comment('コメント3', 'AUTHOR3')
cell = ws['B4']
cell.value = 'B-4'
cell.comment = comment
print(cell.comment)
# 出力:Comment: コメント3 by AUTHOR3
cell.comment = None
print(cell.comment)
# 出力:None
# ワークブック保存
wb.save(WORKBOOK)