Excel裡數字列號轉換為字元標籤列

2022-02-07 10:18:41 字數 1215 閱讀 5195

在進行資料庫匯出到excel時,常會用到將列,如 第1列轉換為 a,第2列轉換為 b 的情況。這時你就要寫演算法了。

哈哈,我這裡有現成的了。

先上**,後解析。

function celltoref(const x,y:integer):string;

function getref(const x:integer):string;

vartoken,i,r:integer;

begin

result:='';

token:=x;

repeat

i := token div 26;

r := token mod 26;

if r <> 0 then

begin

result:=char(r + 64) + result;

endelse if i > 0 then

begin

result := 'z' + result ;

dec(i);

end;

token := i;

until i = 0;

end;

begin

result:= getref(x) + inttostr(y);

end;

**使用delphi編寫,等會我解析完演算法,就可以換成其它語言了編寫了。

函式 celltoref有兩個引數,x表示列號,y表示行號,返回型別為字串,如: celltoref(1,1) 返回為 a1 。當然,這裡的x,y是從0開始還是從1開始要你自己界定。

內嵌函式getref有乙個引數,x表示列號,當然在delphi,做為內嵌函式,這個引數是可以省掉的。返回值為字串,功能為將乙個數字列號轉為相應的字元列號表示。如:getref(1)返回為 a。

演算法解析:          我們知道英文本元有26個。即,a-z(不使用小寫形式的)。所以,對給寫的數字x進行26進製的比較,

即取整(i := token div 26;)與取餘(r := token mod 26;)。之後判斷是否整除,即:r = 0;如果沒有整除,那麼這個餘數就做為結果中的乙個字元了(result:=char(r + 64) + result; 其中char(r+64)為將數字+64之後轉為英文本母)。如果可以整除,那麼向結果中輸出 z (result := 'z' + result ;) ,同時把數字x減去1(dec(i));之後繼續執行上述操作直到完全整除為止。

ok,結束了。

Golang 數字轉換為Excel列A Z

具體需求為匯出excel時,資料只能行數與列數只能為數字,因此在修改制定單元格時無法直觀的定位,要麼修改固定的單元格,要麼就只能通過特殊標識來循壞獲取單元格之後進行修改。或者通過excel工具包中的addrow或者addcell來插入資料。通過以下兩種方法 遞迴和for迴圈 可以做到以下格式的轉換 ...

Excel列標與列號轉換

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

sql 數字轉換為字元

今天在把一些資料匯入到sql server的時候遇到有個列被匯入成float型別,而我實際需要的是varchar型別,所以要進行型別轉換,轉換時遇到了一點問題,所以寫這篇部落格記錄一下。sql server中的數值型別分為兩種,一種是精確的數值型別,具體的資料型別有 bit tinyint smal...