首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Excel列字母转换为数字的算法是什么?

将Excel列字母转换为数字的算法是什么?
EN

Stack Overflow用户
提问于 2009-03-20 20:14:42
回答 9查看 44.8K关注 0票数 70

我需要一个算法来转换一个Excel列字母到其适当的数字。

本文将使用的语言是C#,但任何语言都可以,甚至是伪代码。

请注意,我将把它放在C#中,并且我不想使用office dll。

对于'A‘,预期的结果将是1

For 'AH‘= 34

For 'XFD‘= 16384

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2009-03-20 20:43:27

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;
}
票数 123
EN

Stack Overflow用户

发布于 2009-03-20 20:48:22

int result = colName.Select((c, i) =>
    ((c - 'A' + 1) * ((int)Math.Pow(26, colName.Length - i - 1)))).Sum();
票数 17
EN

Stack Overflow用户

发布于 2009-03-21 09:18:21

int col = colName.ToCharArray().Select(c => c - 'A' + 1).
          Reverse().Select((v, i) => v * (int)Math.Pow(26, i)).Sum();
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/667802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档