如何将列数(例如127)转换为Excel列(例如AA)

13 浏览
0 Comments

如何将列数(例如127)转换为Excel列(例如AA)

如何在不使用自动化的情况下,在C#中将数字转换为Excel列名并直接从Excel获取其值。

Excel 2007的可能范围是1到16384,这是它支持的列数。生成的值应该是Excel列名的形式,例如A、AA、AAA等。

admin 更改状态以发布 2023年5月23日
0
0 Comments

如果有人需要在Excel中不使用VBA进行此操作,以下是一种方法:

=SUBSTITUTE(ADDRESS(1;colNum;4);"1";"")

其中colNum是列号。

在VBA中可以使用以下代码:

Function GetColumnName(colNum As Integer) As String
    Dim d As Integer
    Dim m As Integer
    Dim name As String
    d = colNum
    name = ""
    Do While (d > 0)
        m = (d - 1) Mod 26
        name = Chr(65 + m) + name
        d = Int((d - m) / 26)
    Loop
    GetColumnName = name
End Function

0
0 Comments

以下是我是如何做的:

private string GetExcelColumnName(int columnNumber)
{
    string columnName = "";
    while (columnNumber > 0)
    {
        int modulo = (columnNumber - 1) % 26;
        columnName = Convert.ToChar('A' + modulo) + columnName;
        columnNumber = (columnNumber - modulo) / 26;
    } 
    return columnName;
}

0