如何在C#中使用excel-column-name格式获取Excel中的列索引

时间:2013-02-26 11:26:06

标签: c# excel

我在这里找到了 http://lateral8.com/articles/2010/3/5/openxml-sdk-20-export-a-datatable-to-excel.aspx 一个很棒的功能

private string getColumnName(int columnIndex)
{
    int dividend = columnIndex;
    string columnName = String.Empty;
    int modifier;

    while (dividend > 0)
    {
        modifier = (dividend - 1) % 26;
        columnName = 
            Convert.ToChar(65 + modifier).ToString() + columnName;
        dividend = (int)((dividend - modifier) / 26);
    }

    return columnName;
}

我想做类似的事情 - 提供列名和接收索引。例如,提供名称“AB”并作为结果索引接收索引28.如何执行此操作?

更新:

令人惊讶的是,我在评论部分找到了解决方案

这里 https://stackoverflow.com/a/8739121/907732

在这里 https://stackoverflow.com/a/4888750/907732

1 个答案:

答案 0 :(得分:0)

public static string GetColumnName(int index)
{
    const string letters = "ZABCDEFGHIJKLMNOPQRSTUVWXY";

    int NextPos = (index / 26);
    int LastPos = (index % 26);
    if (LastPos == 0) NextPos--;

    if (index > 26)
        return GetColumnName(NextPos) + letters[LastPos];
    else
        return letters[LastPos] + "";
}