EXCEL工作表单元格地址列地址转换成十进制和十进制转换成单元格地址列地址

using System;
using System.Collections.Generic;
using System.Text;

namespace Excel数据复制
{
    class ConvertToTen
    {
        public int ZmToTen(string zm)
        {
            zm = zm.ToUpper();
            int jg = 0;
            switch (zm)
            {
                case "A": return jg = 1;
                case "B": return jg = 2;
                case "C": return jg = 3;
                case "D": return jg = 4;
                case "E": return jg = 5;
                case "F": return jg = 6;
                case "G": return jg = 7;
                case "H": return jg = 8;
                case "I": return jg = 9;
                case "J": return jg = 10;
                case "K": return jg = 11;
                case "L": return jg = 12;
                case "M": return jg = 13;
                case "N": return jg = 14;
                case "O": return jg = 15;
                case "P": return jg = 16;
                case "Q": return jg = 17;
                case "R": return jg = 18;
                case "S": return jg = 19;
                case "T": return jg = 20;
                case "U": return jg = 21;
                case "V": return jg = 22;
                case "W": return jg = 23;
                case "X": return jg = 24;
                case "Y": return jg = 25;
                case "Z": return jg = 26;

            }
            return jg;

        }
        public string  TenToZm(int ten)
        {
            string  jg=string.Empty;
            switch (ten)
            {
                case 1: return jg = "A";
                case 2: return jg = "B";
                case 3: return jg = "C";
                case 4: return jg = "D";
                case 5: return jg = "E";
                case 6: return jg = "F";
                case 7: return jg = "G";
                case 8: return jg = "H";
                case 9: return jg = "I";
                case 10: return jg = "J";
                case 11: return jg = "K";
                case 12: return jg = "L";
                case 13: return jg = "M";
                case 14: return jg = "N";
                case 15: return jg = "O";
                case 16: return jg = "P";
                case 17: return jg = "Q";
                case 18: return jg = "R";
                case 19: return jg = "S";
                case 20: return jg = "T";
                case 21: return jg = "U";
                case 22: return jg = "V";
                case 23: return jg = "W";
                case 24: return jg = "X";
                case 25: return jg = "Y";
                case 26: return jg = "Z";

            }
            return jg;

        }

        //26进制转换成十进制
        public int ZmsToTen(string zms)
        {
            int jg = 0;
            if (zms != string.Empty)
            {
                for (int i = 1; i <= zms.Length; i++)
                {

                    int _jg = 1;
                    for (int j = 0; j < i; j++)
                    {
                        if (j == 0)
                        {
                            _jg = 1;
                        }
                        else
                        {
                            _jg = 26 * _jg;
                        }
                    }
                    jg = jg + ZmToTen(zms.ToUpper().Substring(zms.Length-i, 1)) * _jg;
                }

            }
            else
            {
                jg = 0;
            }

            return jg;

        }
        //10进制转换成26进制
        public string  TensToZm(int tens)
        {

            string jg=string.Empty;
            int _jg = tens;
            int _jg1=0;

            if (tens > 0)
            {
                while (_jg != 0)
                {
                    _jg1 = _jg % 26;//取到余数

                    _jg = (_jg-1) / 26;//取到模,搞不清为什么要减一,可能是从1开始地,在取模时要考虑从1开始而不是从0开始

                    if (_jg1 == 0)
                    {
                        jg =  "Z"+jg;
                       
                    }
                    else
                    {
                        jg = TenToZm(_jg1)+jg;
                   
                    }
                   
                   

                }

            }
            else
            {
                jg = "";
            }
           
            return jg;

        }
    }
}
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值