使用C#在Excel/VSTO中的列号为列号

ven*_*kat 5 c# vsto excel-2007

如何查找列的名称或标题?

例如,如果我在excel中选择第5列意味着我希望结果为"E".如何获取对应于列号的字母或字母.

请帮我解释一下代码

Luk*_*keH 5

public static string GetColumnName(int columnNumber)
{
    const string letters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    string columnName = "";

    while (columnNumber > 0)
    {
        columnName = letters[(columnNumber - 1) % 26] + columnName;
        columnNumber = (columnNumber - 1) / 26;
    }

    return columnName;
}
Run Code Online (Sandbox Code Playgroud)


Ahm*_*mad 2

Application.ActiveCell.get_Address(true, true, Excel.AlReferenceStyle.xlA1, missing, missing)使用然后解析结果字符串或使用正则表达式来获取列标题怎么样?

我简单地使用了:

string location = Application.ActiveCell.get_Address(true, true, Excel.AlReferenceStyle.xlA1, missing, missing);
string tokens = x.Split("$".ToCharArray());
MessageBox.Show(String.Format("Column {0}", result[0]));
Run Code Online (Sandbox Code Playgroud)

  • 这段代码是错误的。这是更正后的版本: var location =sheet.Range["A1"].Offset[0, columnNumber - 1].Address[true, true, XlReferenceStyle.xlA1, Missing, Missing]; var tokens = location.Split('$'); 返回令牌[1]; (2认同)