什么是一个Excel列字母转换成其编号的算法? [英] What is the algorithm to convert an Excel Column Letter into its Number?

查看:220
本文介绍了什么是一个Excel列字母转换成其编号的算法?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要一个算法来一个Excel列字母转换到正确的号码。

这将在用的语言是C#,但任何会做,甚至伪code。

请注意我打算把这个在C#中,我不希望使用Office的DLL。

有关'A'预期的结果将是1

有关'啊'= 34

有关'XFD'= 16384


解决方案

 公共静态INT ExcelColumnNameToNumber(字符串COLUMNNAME)
{
    如果(string.IsNullOrEmpty(COLUMNNAME))抛出新的ArgumentNullException(COLUMNNAME);    COLUMNNAME = columnName.ToUpperInvariant();    INT总和= 0;    的for(int i = 0; I< columnName.Length;我++)
    {
        总之* = 26;
        总和+ =(COLUMNNAME [I] - 'A'+ 1);
    }    返回总和;
}

I need an algorithm to convert an Excel Column letter to its proper number.

The language this will be written in is C#, but any would do or even pseudo code.

Please note I am going to put this in C# and I don't want to use the office dll.

For 'A' the expected result will be 1

For 'AH' = 34

For 'XFD' = 16384

解决方案

public static int ExcelColumnNameToNumber(string columnName)
{
    if (string.IsNullOrEmpty(columnName)) throw new ArgumentNullException("columnName");

    columnName = columnName.ToUpperInvariant();

    int sum = 0;

    for (int i = 0; i < columnName.Length; i++)
    {
        sum *= 26;
        sum += (columnName[i] - 'A' + 1);
    }

    return sum;
}

这篇关于什么是一个Excel列字母转换成其编号的算法?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆