将单元格索引转换为单元格表示形式

13 浏览
0 Comments

将单元格索引转换为单元格表示形式

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

Excel 2007的可能范围是1到16384,这是它支持的列数。结果的值应该是以Excel列名的形式呈现,例如A,AA,AAA等。

admin 更改状态以发布 2023年5月20日
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