この記事は公開から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()
を見直すと良いかも知れません。
以上です。