索引號與EXCEL列名互轉

2021-06-01 23:47:03 字數 2918 閱讀 8107

其實是26進製的轉換過程,對於ole操作excel時很有用!

pb code:

view plain

/*函式名:of_converttocolname(long al_colnum)

功能:將索引號轉換為對應的excel列名 如a,b,c,d,e,aa,ab,ac,ad

引數:long al_colnum 索引號

返回:string 轉換後的列名

*/long ll_mod  

string colname  

dowhile al_colnum > 0  

ll_mod = mod(al_colnum,26)  

if ll_mod=0 then  

colname="z"+colname  

ll_mod = 1  

else

colname=string(chara(ll_mod + 64))+colname  

end if

al_colnum = (al_colnum - ll_mod) / 26  

loop  

return colname  

------------------  

/*函式名:of_converttoindex(string as_colname)

功能:將列名轉換為對應的索引號

引數:string as_colname 列名

返回:long 轉換後的索引號

*/long colindex,i  

for i=len(as_colname) to 1 step -1  

colindex+=(asca(mid(as_colname,i,1)) - 64) * 26^(len(as_colname) - i)  

next  

return colindex  

再提供乙個c#版的:

view plain

/// 

/// 根據索引號轉換為對應的excel列名

/// 如a,b,c,d,e,aa,ab,ac,ad

/// 

/// 索引號

/// string

static

string converttocolname(int colnum)  

else

colnum = (colnum - ll_mod) / 26;  

}  return colname;  

}  /// 

/// 將列名轉換為對應的索引號

/// 

/// 列名

/// int

static

int converttoindex(string colname)  

return colindex;  

}  

示例:

view plain

正向轉換:10 >> j     反向轉換:j >> 10  

正向轉換:11 >> k     反向轉換:k >> 11  

正向轉換:12 >> l     反向轉換:l >> 12  

正向轉換:13 >> m     反向轉換:m >> 13  

正向轉換:14 >> n     反向轉換:n >> 14  

正向轉換:15 >> o     反向轉換:o >> 15  

正向轉換:16 >> p     反向轉換:p >> 16  

正向轉換:17 >> q     反向轉換:q >> 17  

正向轉換:18 >> r     反向轉換:r >> 18  

正向轉換:19 >> s     反向轉換:s >> 19  

正向轉換:20 >> t     反向轉換:t >> 20  

正向轉換:21 >> u     反向轉換:u >> 21  

正向轉換:22 >> v     反向轉換:v >> 22  

正向轉換:23 >> w     反向轉換:w >> 23  

正向轉換:24 >> x     反向轉換:x >> 24  

正向轉換:25 >> y     反向轉換:y >> 25  

正向轉換:26 >> z     反向轉換:z >> 26  

正向轉換:27 >> aa     反向轉換:aa >> 27  

正向轉換:28 >> ab     反向轉換:ab >> 28  

正向轉換:307 >> ku     反向轉換:ku >> 307  

正向轉換:308 >> kv     反向轉換:kv >> 308  

正向轉換:309 >> kw     反向轉換:kw >> 309  

正向轉換:310 >> kx     反向轉換:kx >> 310  

正向轉換:311 >> ky     反向轉換:ky >> 311  

正向轉換:312 >> kz     反向轉換:kz >> 312  

正向轉換:313 >> la     反向轉換:la >> 313  

正向轉換:314 >> lb     反向轉換:lb >> 314  

正向轉換:315 >> lc     反向轉換:lc >> 315  

正向轉換:316 >> ld     反向轉換:ld >> 316  

正向轉換:317 >> le     反向轉換:le >> 317  

正向轉換:318 >> lf     反向轉換:lf >> 318  

正向轉換:319 >> lg     反向轉換:lg >> 319  

正向轉換:320 >> lh     反向轉換:lh >> 320  

正向轉換:321 >> li     反向轉換:li >> 321  

正向轉換:322 >> lj     反向轉換:lj >> 322  

正向轉換:323 >> lk     反向轉換:lk >> 323  

**自:

Python根據Excel列索引值生成列字母名

usr bin env python3 import string defgetcolumnname columnindex ret ci columnindex 1 index ci 26if index 0 ret getcolumnname index ret string.ascii upp...

Excel列標與列號轉換

熟悉excel操作的使用者都知道在工作表中列標題有列標 字母形式 和列號 數字形式 兩種,如下圖所示。cells的第二個引數,即可以使用數字列號,也可以使用列標字母,然而對於range來說引數為字串,也就是使用列標形式。cells 6,3 cells 6,c range c6 在 中使用變數的示例。...

ssdt函式索引號 SSDT索引號的獲取

系統服務描述符表,system service dispatch table,ssdt windows在核心層提供了兩張表,分別為ssdt system service descriptor table,系統服務描述表 和shadow ssdt 使用者層的api實現,實際是層簡單的包裝,最終都是轉到...