[Test]
public void Test10To26()
{
Assert.AreEqual( " A " , GetColumnName( 1 ));
Assert.AreEqual( " B " , GetColumnName( 2 ));
Assert.AreEqual( " Z " , GetColumnName( 26 ));
Assert.AreEqual( " ZZ " , GetColumnName( 26 * 26 + 26 ));
Assert.AreEqual( " ZZZ " , GetColumnName( 26 * 26 * 26 + 26 * 26 + 26 ));
Assert.AreEqual( " AA " , GetColumnName( 27 ));
Assert.AreEqual( " AB " , GetColumnName( 28 ));
Assert.AreEqual( " AC " , GetColumnName( 29 ));
int aaa = 1 * 26 * 26 + 1 * 26 + 1 ; // AAA;
Assert.AreEqual( " AAA " , GetColumnName(aaa));
int aab = 1 * 26 * 26 + 1 * 26 + 2 ;
Assert.AreEqual( " AAB " , GetColumnName(aab));
int bbb = 2 * 26 * 26 + 2 * 26 + 2 ; // AAA;
Assert.AreEqual( " BBB " , GetColumnName(bbb));
}
public string GetColumnName( int intValue)
{
string result = "" ;
if (intValue <= 26 )
{
result = ( char )(intValue + 96 ) + result;
return result.ToUpper();
}
int modOf26 = intValue % 26 ;
int left = 0 ;
if (modOf26 == 0 )
{
result = ' Z ' + result;
left = intValue - 26 ;
}
else
{
result = ( char )(modOf26 + 96 ) + result;
left = intValue - modOf26;
}
int nextInputValue = left / 26 ;
if (nextInputValue == 0 )
return result.ToUpper();
if (nextInputValue > 26 )
result = GetColumnName(nextInputValue) + result;
else
result = ( char )(nextInputValue + 96 ) + result;
return result.ToUpper();
}
public void Test10To26()
{
Assert.AreEqual( " A " , GetColumnName( 1 ));
Assert.AreEqual( " B " , GetColumnName( 2 ));
Assert.AreEqual( " Z " , GetColumnName( 26 ));
Assert.AreEqual( " ZZ " , GetColumnName( 26 * 26 + 26 ));
Assert.AreEqual( " ZZZ " , GetColumnName( 26 * 26 * 26 + 26 * 26 + 26 ));
Assert.AreEqual( " AA " , GetColumnName( 27 ));
Assert.AreEqual( " AB " , GetColumnName( 28 ));
Assert.AreEqual( " AC " , GetColumnName( 29 ));
int aaa = 1 * 26 * 26 + 1 * 26 + 1 ; // AAA;
Assert.AreEqual( " AAA " , GetColumnName(aaa));
int aab = 1 * 26 * 26 + 1 * 26 + 2 ;
Assert.AreEqual( " AAB " , GetColumnName(aab));
int bbb = 2 * 26 * 26 + 2 * 26 + 2 ; // AAA;
Assert.AreEqual( " BBB " , GetColumnName(bbb));
}
public string GetColumnName( int intValue)
{
string result = "" ;
if (intValue <= 26 )
{
result = ( char )(intValue + 96 ) + result;
return result.ToUpper();
}
int modOf26 = intValue % 26 ;
int left = 0 ;
if (modOf26 == 0 )
{
result = ' Z ' + result;
left = intValue - 26 ;
}
else
{
result = ( char )(modOf26 + 96 ) + result;
left = intValue - modOf26;
}
int nextInputValue = left / 26 ;
if (nextInputValue == 0 )
return result.ToUpper();
if (nextInputValue > 26 )
result = GetColumnName(nextInputValue) + result;
else
result = ( char )(nextInputValue + 96 ) + result;
return result.ToUpper();
}