MENU

Python学習 Exeleの操作〜Excelシートの文字と番号を変換する〜

前回までExcelファイルからセルを取得する方法を学びました。

前回はセルを取得する際に、行はrow、列はcolumnを使って指定しました。

rowcolumnはどちらも数字で管理されていますが、Excelでは列は「A」「B」「C」のようにアルファベットで表示されています。

そのため、Pythonでも数字とアルファベットを相互に変換できるようになると、コードが理解しやすくなります。

目次

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では列番号で処理する場面も多くあります。これらの関数を覚えておくと、セルの指定や繰り返し処理を書く際に役立ちます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

FIREを目指しながら、投資・プログラミング・家庭菜園・資格勉強に取り組んでいます。試行錯誤しながら積み上げる日々を記録するブログです。

コメント

コメントする

目次