现在的位置: 首页 > 综合 > 正文

EXCEL中列号由数字转为字母类

2012年11月20日 ⁄ 综合 ⁄ 共 2207字 ⁄ 字号 评论关闭

 class NumberToLetter
    {

        #region  Generate a letter

        /// <summary>
        /// Generate a letter according to the param
        /// Return the letter
        /// </summary>
        /// <param name="number">the letter's number</param>
        /// <returns>The number represent which letters</returns>

        public string GenerateLetter(int number)
        {
            string letter = string.Empty;
            switch (number)
            {
                case 0: letter = "Z"; break;
                case 1: letter = "A"; break;
                case 2: letter = "B"; break;
                case 3: letter = "C"; break;
                case 4: letter = "D"; break;
                case 5: letter = "E"; break;
                case 6: letter = "F"; break;
                case 7: letter = "G"; break;
                case 8: letter = "H"; break;
                case 9: letter = "I"; break;
                case 10: letter = "J"; break;
                case 11: letter = "K"; break;
                case 12: letter = "L"; break;
                case 13: letter = "M"; break;
                case 14: letter = "N"; break;
                case 15: letter = "O"; break;
                case 16: letter = "P"; break;
                case 17: letter = "Q"; break;
                case 18: letter = "R"; break;
                case 19: letter = "S"; break;
                case 20: letter = "T"; break;
                case 21: letter = "U"; break;
                case 22: letter = "V"; break;
                case 23: letter = "W"; break;
                case 24: letter = "X"; break;
                case 25: letter = "Y"; break;
                default: return "Sorry,there is no answer!";
            }
            return letter;
        }
        #endregion

        #region  Get the column'name

        /// <summary>
        /// Get the column'name by the column'number
        /// Return the column'name
        /// </summary>
        /// <param name="number">the column's number</param>
        /// <returns>The column'name </returns>

        string columnName = string.Empty;
        public string ChangeNumber(int columnNum)
        {
            int i = columnNum / 26;
            int j = columnNum % 26;
            string k = string.Empty;
            if (i == 0)
            {
                columnName = GenerateLetter(j);
            }
            else
            {
                k = GenerateLetter(j);
                columnName = ChangeNumber(i) + k;
            }
            return columnName;
        }

        #endregion
    }

抱歉!评论已关闭.