Je suppose que cela fonctionne essentiellement de la même manière que certaines autres réponses, mais cela peut rendre un peu plus clair ce qui se passe avec l'équivalent alpha d'un chiffre numérique. Ce n'est pas tout à fait un système de base 26 parce qu'il n'y a pas d'espace réservé 0. Autrement dit, la 26e colonne serait «A0» ou quelque chose au lieu de Z dans la base 26.Et ce n'est pas la base 27 parce que les 'alpha-gits' ne représentent pas les pouvoirs de 27. Man, ça vous fait vraiment apprécier ce que l'arithmétique du désordre a dû être avant que les Babyloniens inventent le zéro!
UInt32 sum = 0, gitVal = 1;
foreach (char alphagit in ColumnName.ToUpperInvariant().ToCharArray().Reverse())
{
sum += gitVal * (UInt32)('A' - alphagit + 1);
gitVal *= 26;
}
Comme d'autres, je renversé le tableau de caractères, donc je ne pas besoin de savoir quoi que ce soit au sujet des exposants.
Pour l'inverse (à partir du numéro à colonne-lettre) voir: http://stackoverflow.com/questions/181596/how-to-convert-a-column-number-eg-127-into-an-excel-column-eg-aa – surfmuggle