将Excel列字母转换为其编号的算法是什么?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

我需要一个算法来将Excel列字母转换成适当的编号。

它将用C#编写,但任何语言都会使用,甚至是伪代码。

请注意,我将把这个放在C#中,我不想使用OfficeDLL。

对于“A”,预期结果是1

代表‘AH’=34

为‘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;
}
用户回答回答于
int result = colName.Select((c, i) =>
    ((c - 'A' + 1) * ((int)Math.Pow(26, colName.Length - i - 1)))).Sum();

扫码关注云+社区