zoukankan      html  css  js  c++  java
  • 10进制转26进制作为Excel列名

           [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();
             
            }


  • 相关阅读:
    1107 Social Clusters (30)
    1066 Root of AVL Tree (25)
    1099 Build A Binary Search Tree (30)
    1064 Complete Binary Search Tree (30)
    1043 Is It a Binary Search Tree (25)
    Hadoop学习总结(1)——大数据以及Hadoop相关概念介绍
    MyBatis学习总结(10)——批量操作
    MyBatis学习总结(10)——批量操作
    Java基础学习总结(23)——GUI编程
    Java基础学习总结(23)——GUI编程
  • 原文地址:https://www.cnblogs.com/xhan/p/1635294.html
Copyright © 2011-2022 走看看