数字转换成excel列名(10进制到Excel的26进制的转换函数)

真悲剧!自己写了3个小时 这个东西居然没写出来!汗死!!!!

不过找到了答案,在网上找了好久好多有意思的算法,但是遇到以Z 结尾的列名时计算错误

 

共享出来大家一起用吧!

 

        /// <summary>

        /// 将 Excle 列索引转换成列名称

        /// </summary>

        /// <param name="colIndex">列索引</param>

        /// <returns></returns>

        public string ConvertToColName(int colIndex)

        {

            string strRtn = "";

            if (colIndex <= 0)

                return "";

            int numMod = 0;

            int numTemp = colIndex;

            char ch = 'A';

            do

            {

                numMod = numTemp % 26;

                numTemp = numTemp / 26;

                if (numMod == 0)

                {

                    ch = 'Z';

                    numTemp--;

                }

                else

                    ch = (char)('A' + numMod - 1);

                strRtn = ch + strRtn;

            }

            while (numTemp > 0);

            return strRtn;

        }

posted @ 2011-05-22 18:34  草青工作室  阅读(250)  评论(0编辑  收藏  举报