Python Excelのセルの記号を変換する(1,1→A1)

スポンサーリンク

PythonではExcelのセルの番地を2種類の方法で指定することができます。

A10セルの場合、

  • A10
  • row=10,column=1

この2種類の記述の方法は変換することができます。例えば、「row=10,column=1」から「A10」を求めたり。

今回は、Excelのセルの記号を変換する方法を解説します。

Excelのセル番地を変換する

構文

import openpyxl

# 列番号(A,B,C・・・)を取得
シート変数.cell(row=行,column=列).column

# 行番号(1,2,3・・・)を取得 
シート変数.cell(row=行,column=列).row

# 番地(A1,A2,A3・・・)を変換
シート変数.cell(row=行,column=列).coordinate
openpyxl.utils.get_column_letter(列)

PythonでExcel操作をするには、「openPyXl」パッケージが便利です。「openPyXl」を事前にダウンロード・インストールしておく必要があります。

参照外部パッケージ OpenPyXLをインストールする方法

セルの指定は、「A1」「B1」で指定するパターン、行列を数値で指定するパターンの2種類があります。

行列の数値がわかっていれば、「coordinate」で「A1」「B1」に変換することができます。「openpyxl.utils.get_column_letter」を使って列文字「A」「B」に変換することもできます。

例1. Excelのセル(9,1)からセル番地(A9)を取得する coordinate

import openpyxl

# ブックを取得
book = openpyxl.load_workbook('C:\\pg\\人口一覧.xlsx')
# シートを取得 
sheet = book['sheet1']

# セル番地を取得 
sheet.cell(row=9,column=1).coordinate
#[結果] 'A9'
# セル行を取得 
sheet.cell(row=9,column=1).column
#[結果] A

この例では、セルの行列の「数値」から「A1」などのセルの「記号」を取得しました。

「coordinate」を使って、「row=9,column=1」から「A9」に変換することができました。

「column」を使えば、列番号「A」だけを取得できました。

例2. Excelのセル(9,1)からセル番地(A9)を取得する get_column_letter

import openpyxl

# ブックを取得
book = openpyxl.load_workbook('C:\\pg\\人口一覧.xlsx')
# シートを取得 
sheet = book['sheet1']

# セル列を取得 
openpyxl.utils.get_column_letter(1)
#[結果] 'A'
# セル番地を取得 
openpyxl.utils.get_column_letter(3) + '9'
#[結果] 'C9'

「openpyxl.utils.get_column_letter」を使ってセル数値からセル記号を取得することもできます。

例3. Excelのセル番地(C9)からセル(9,3)を取得する column_index_from_string

import openpyxl

# ブックを取得
book = openpyxl.load_workbook('C:\\pg\\人口一覧.xlsx')
# シートを取得 
sheet = book['sheet1']

# セル列を取得 
openpyxl.utils.column_index_from_string('C')
#[結果] 3

例2と逆に、セル記号から列の数値を取得することもできます。

「column_index_from_string」をつかって、列「C」→列「3」に変換することができました。

これでExcelのセルの数値「9,1」からセルの記号「A9」を変換し、セルの記号「A9」からセルの数値「9,1」へ変換することができました。

以上、PythonでExcelのセルの記号を変換する(1,1→A1)する方法でした。

コメント