.NETでEXCELのA1形式の列アドレスから列番号を取得する方法

この記事は公開から1年以上経過しています。

.NET(C#/VB.NET)でEXCELのA1形式の列アドレス(A〜XFD)から列番号(1〜16384)を取得するシンプルなメソッドを作成したので紹介します。

例:

A → 1
Z → 26
AA → 27
ZZ → 702
AAA → 703
XFD → 16384(EXCELの最大列)
ZZZ → 18278


サンプルソースコード

第一引数にA1形式の列アドレスを渡すと該当する列番号を返します。
エラーチェックなどは行っていないので適宜実装してください。

C#

int GetColumnNumber(string column)
{
    return column.Select((c, i) => (int)Math.Pow(26, column.Length - 1 - i) * (c - 64)).Sum();
}

VB.NET

Function GetColumnNumber(ByVal column As String) As Integer
    Return column.Select(Function(c, i) CInt(Math.Pow(26, column.Length - 1 - i)) * (Convert.ToInt32(c) - 64)).Sum()
End Function

速度を稼ぎたい場合はMath.Pow()を見直すと良いかも知れません。


以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする