Полагаю, это, по сути, работает так же, как и некоторые другие ответы, но может немного прояснить, что происходит с альфа-эквивалентом числовой цифры. Это не совсем система 26, потому что нет нулевого заполнителя. То есть, 26-й столбец будет «A0» или что-то вместо Z в базе 26. И это не база 27, потому что «альфа-мерзавцы» не представляют силы 27. Человек, это действительно заставляет вас ценить беспорядок арифметика должна была быть до того, как вавилоняне изобрели ноль!
UInt32 sum = 0, gitVal = 1;
foreach (char alphagit in ColumnName.ToUpperInvariant().ToCharArray().Reverse())
{
sum += gitVal * (UInt32)(alphagit - 'A' + 1)
gitVal *= 26;
}
Как и некоторые другие, я перевернул массив символов, поэтому мне не нужно ничего знать о показателях.