2012-06-22

C# 숫자 컬럼값을 액셀 알파벳컬럼값으로 변환

숫자 컬럼 값을 엑셀에서 사용하는 알파벳으로 변환해 봄.
 
        /// 
        /// 10진수 컬럼 값을 엑셀에서 사용하는 컬럼 값 처럼, 알파벳으로 변환
        /// 
        /// 

        /// 
        public string DecToAlphabet(int num)
        {
            int rest; //나눗셈 계산에 사용될 나머지 값
            string alphabet; //10진수에서 알파벳으로 변환될 값

            byte[] asciiA = Encoding.ASCII.GetBytes("A"); // 0=>A
            rest = num % 26; // A~Z 26자
            asciiA[0] += (byte)rest; // num 0일 때 A, num 4일 때 A+4 => E

            alphabet = Encoding.ASCII.GetString(asciiA); //변환된 알파벳 저장
            
            num = num / 26 -1; // 그 다음 자리의 알파벳 계산을 재귀하기 위해, 받은 수/알파벳수 -1 (0은 A라는 문자값이 있으므로 -1을 기준으로 계산함)
            if (num > -1) 
            {
                alphabet=alphabet.Insert(0,DecToAlphabet(num)); //재귀 호출하며 결과를 앞자리에 insert
            }
            return alphabet; // 최종값 return
        }
        ///
        /// int input=Int32.Parse(textBox1.Text.ToString());
        /// Trace.WriteLine(input+"=> "+ xlsmaker.DecToAlphabet(input));
        /// 결과
        /// 0=> A
        /// 27=> AB
        /// 16383=> XFD
//

댓글 없음:

댓글 쓰기