具體需求為匯出excel時,資料只能行數與列數只能為數字,因此在修改制定單元格時無法直觀的定位,要麼修改固定的單元格,要麼就只能通過特殊標識來循壞獲取單元格之後進行修改。或者通過excel工具包中的addrow或者addcell來插入資料。
通過以下兩種方法(遞迴和for迴圈)可以做到以下格式的轉換
map[int]map[string]string
int *****==> row
第二個map中的key是通過for拿取到的值,因此可以通過index int的方式獲取列索引。
獲取到列索引之後需要將索引轉換為a-z。
遞迴
var excelchar = string
func convertnumtochar(num int) (string, error)
k := num % 26
if k == 0
v := (num - k) / 26
col, err := convertnumtochar(v)
if err != nil
cols := col + excelchar[k]
return cols, nil
}
for迴圈var excelchar = string
func convertnumtochars(num int) (string, error)
v = (v - k) / 26
cols = excelchar[k] + cols
}return cols, nil
}
funcexectime為計算方法執行時間func funcexectime(methodname string, starttime time.time)
測試結果func main()
// 方法 convertnumtochars 的執行時間是: 0 納秒,執行開始時間是: 2020-07-02 18:40:29.3156532 +0800 cst m=+0.011461701 ,結束時間是: 2020-07-02 18:40:29.3156532 +0800 cst m=+0.011461701
// 方法 convertnumtochars 的執行時間是: 23936600 納秒,執行開始時間是: 2020-07-02 18:40:29.3156532 +0800 cst m=+0.011461701 ,結束時間是: 2020-07-02 18:40:29.3395898 +0800 cst m=+0.035398301
// 方法 convertnumtochars 的執行時間是: 23936600 納秒,執行開始時間是: 2020-07-02 18:40:29.3156532 +0800 cst m=+0.011461701 ,結束時間是: 2020-07-02 18:40:29.3395898 +0800 cst m=+0.035398301
// 方法 convertnumtochars 的執行時間是: 23936600 納秒,執行開始時間是: 2020-07-02 18:40:29.3156532 +0800 cst m=+0.011461701 ,結束時間是: 2020-07-02 18:40:29.3395898 +0800 cst m=+0.035398301
// 方法 convertnumtochars 的執行時間是: 23936600 納秒,執行開始時間是: 2020-07-02 18:40:29.3156532 +0800 cst m=+0.011461701 ,結束時間是: 2020-07-02 18:40:29.3395898 +0800 cst m=+0.035398301
// 方法 convertnumtochars 的執行時間是: 23936600 納秒,執行開始時間是: 2020-07-02 18:40:29.3156532 +0800 cst m=+0.011461701 ,結束時間是: 2020-07-02 18:40:29.3395898 +0800 cst m=+0.035398301
// pbancm // 方法 convertnumtochars 的執行時間是: 0 納秒,執行開始時間是: 2020-07-02 18:40:29.3395898 +0800 cst m=+0.035398301 ,結束時間是: 2020-07-02 18:40:29.3395898 +0800 cst m=+0.035398301
// psnmso
經過執行時間的對比,勉強可以看出for的執行效率時間是快於遞迴,但是這裡是可能是fmt的原因導致的這個差異。
從中可以看出,達到億級別的數字才有不到1秒的差距,因此兩種方式都是可以忽略時間正常執行。
將DataGrid中的資料轉換為Excel c
if gridx.tablestyles.count 0 objarr new object ivisable objarr list.toarray excelcell xst.get range excel.cells 1,1 excel.cells 1,ivisable excelcell.v...
js轉換為數字
方法主要有三種 轉換函式 強制型別轉換 利用js變數弱型別轉換。1.轉換函式 js提供了parseint 和parsefloat 兩個轉換函式。前者把值轉換成整數,後者把值轉換成浮點數。只有對string型別呼叫這些方法,這兩個函式才能正確執行 對其他型別返回的都是nan not a number ...
數字轉換為漢字
其實數字轉換成漢字的方式有多種多樣的,在我的同事中就有寫出更加簡單方便的 但是由於他的方法不易讀懂 水平不夠啊 因此在這裡我只說說我是如何實現這個功能 也是通過別人的指點之後思索出來的 思想簡要 1.數字對應的轉換成漢字,這其中不考慮任何情況只是簡單的轉換 如1000 轉換為 一千零百零十零 2.然...