C# Excel列名与Int互转

  /// <summary>
        /// 根据excel列名获取索引,如A=>0,B=>1
        /// </summary>
        /// <param name="columnName"></param>
        /// <returns></returns>
        static int GetExcelColIndex(string columnName)
        {
            var length = columnName.Length;
            int result = 0;
            for (int i = 0; i < columnName.Length; i++)
            {
                var c = columnName[i];
                result += (c - 'A' + 1) * (int)Math.Pow(26, length - i - 1);
            } 
            return result - 1; 
        }


        /// <summary>
        /// 根据excel列索引获取列名,如0=>A,1=>B,2=>C
        /// </summary>
        /// <param name="colIndex"></param>
        /// <returns></returns>
        private static string GetExcelColumn(int colIndex)
        {
            var quotient = colIndex / 26;
            var remainder = colIndex % 26;
            var last = ((char)(remainder + 'A')).ToString();
            if (quotient > 0)
            {
                return GetExcelColumn(quotient - 1) + last;
            }
            else
            {
                return last;
            }
        }

 

posted @ 2020-09-22 14:29  灰主流  阅读(453)  评论(0编辑  收藏  举报