如何转换列号(如。127)放入EXCEL列(如。(Aa)

如何转换列号(如。127)放入EXCEL列(如。(Aa)

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

Excel 2007的范围可能在1到16384之间,这是它支持的列数。得到的值应该以EXCEL列名的形式出现,例如A、AA、AAA等。


GCT1015
浏览 523回答 3
3回答

qq_花开花谢_0

如果有人需要在没有VBA的Excel中这样做,下面是一种方法:=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 = nameEnd Function

函数式编程

对不起,这是Python而不是C#,但至少结果是正确的:def&nbsp;ColIdxToXlName(idx): &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;idx&nbsp;<&nbsp;1: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raise&nbsp;ValueError("Index&nbsp;is&nbsp;too&nbsp;small") &nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;"" &nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;True: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;idx&nbsp;>&nbsp;26: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;idx,&nbsp;r&nbsp;=&nbsp;divmod(idx&nbsp;-&nbsp;1,&nbsp;26) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;=&nbsp;chr(r&nbsp;+&nbsp;ord('A'))&nbsp;+&nbsp;result&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;chr(idx&nbsp;+&nbsp;ord('A')&nbsp;-&nbsp;1)&nbsp;+&nbsp;resultfor&nbsp;i&nbsp;in&nbsp;xrange(1,&nbsp;1024): &nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;"%4d&nbsp;:&nbsp;%s"&nbsp;%&nbsp;(i,&nbsp;ColIdxToXlName(i))
打开App,查看更多内容
随时随地看视频慕课网APP