前回までExcelファイルからセルを取得する方法を学びました。
前回はセルを取得する際に、行はrow、列はcolumnを使って指定しました。
rowやcolumnはどちらも数字で管理されていますが、Excelでは列は「A」「B」「C」のようにアルファベットで表示されています。
そのため、Pythonでも数字とアルファベットを相互に変換できるようになると、コードが理解しやすくなります。
あわせて読みたい


Python学習 Exeleの操作1〜Excelファイルを読み込む〜
Pythonのopenpyxlを使ってExcelファイルを読み込み、ワークブックとシートを取得する方法を初心者向けに解説します。sheetnames属性やWorksheetオブジェクトの基本的な使い方を学び、今後の資産管理表・配当管理表作成の基礎を身につけます。
あわせて読みたい


Python学習 Exeleの操作2〜Excelシートからセルを取得する(openpyxl)〜
前回はExcelからワークブックやシートを読み込むことができました。 今回はExcelシート内のセルを取得します。 Excelシートからセルを取得する import openpyxl wb=open…
目次
Excel 列と行の最大値を取得する
import openpyxl
wb=openpyxl.load_workbook('rakuten.xlsx')
Sheet=wb['rakuten'] #ワークブックからシートを取得
print(Sheet.max_row) #行の最大値を表示
print(Sheet.max_column) #列の最大値を表示
#出力結果は
81
18
Sheet.max_rowはデータが入力されている最大行数を取得します。
Sheet.max_columnはデータが入力されている最大列数を取得します。
今回のExcelファイルでは、81行・18列のデータがあることが分かりました。
Excelの列の文字と番号を相互に交換する
import openpyxl
wb=openpyxl.load_workbook('rakuten.xlsx')
Sheet=wb['rakuten'] #ワークブックからシートを取得
from openpyxl.utils import get_column_letter
print(get_column_letter(1))
print(get_column_letter(2))
#出力結果は
A
B
get_column_letter()を使用すると、列番号をExcelで表示されるアルファベットへ変換できます。
例えば、
- 1 → A
- 2 → B
- 26 → Z
- 27 → AA
のように変換されます。
Excelの列のアルファベットを列番号へ変換する
import openpyxl
wb=openpyxl.load_workbook('rakuten.xlsx')
Sheet=wb['rakuten'] #ワークブックからシートを取得
from openpyxl.utils import column_index_from_string
print(column_index_from_string('A'))
print(column_index_from_string('AA'))
#出力結果は
1
27
column_index_from_string()を使用すると、Excelの列名(アルファベット)を列番号へ変換できます。
例えば、
- A → 1
- Z → 26
- AA → 27
のように変換されます。
まとめ
今回は、openpyxl.utilsに用意されている関数を使って、列番号とExcelの列名(アルファベット)を相互に変換する方法を学びました。
Excelでは列はアルファベットで表示されますが、Pythonでは列番号で処理する場面も多くあります。これらの関数を覚えておくと、セルの指定や繰り返し処理を書く際に役立ちます。

コメント