Excel列數與對應字母的轉化

2021-08-27 10:28:13 字數 1187 閱讀 4252

最近遇到這樣個問題,將資料寫進excel文件中,在插入公式的時候希望得到某列對應的字母,如給第一列對應'a',第52列對應'az'

現將**貼出,後面待用

public string getexcelcolumnletter(int column)else

}columnletter = (char)(64+column) + columnletter;

return columnletter;

}

這段**列數是是從1開始的。

另外在網上看見一段相同功能的**,相比更加簡潔一點

public static string getexcellabel(int index)  while (index > 0);

system.out.println(rs);

return rs;

}

上面這兩段**未對傳入的引數做判斷,如果傳入負數就悲催了,等著返回各種字元吧。需要的時候可以在函式開始處新增判斷語句。

完成這段**之後又沒事寫了個從字母到列數的函式,也貼出來吧

public int getexcelcolumnindex(string columnletter)

columnletter = columnletter.touppercase();

int columnindex = 0;

char letters = columnletter.tochararray();

for(char let : letters)

return columnindex;

}

這段**對傳入的字串沒有大小寫的限制,但是必須全是字母組成,否則返回-1。表示字串不合法。

最後提供乙個驗證方法

在excel中某個單元格輸入列數對應的字母如a1單元格輸入ab,然後在b1單元格輸入公式=column(indirect(a1&3))

這樣就可以在b1單元格得到ab列對應的列數28,在excel2007中最大好像只能輸入xfd。

倒過來,可以在a2單元格輸入列數如28,在b2單元格輸入=left(address(1,a2,4,1),len(address(1,a2,4,1))-1)

就可以在b2單元格得到28列對應的列標字母ab了。xfd對應的列數是16384,所以輸入的數不要大於16384。

使用Java將Excel 列號數字與字母互相轉換

public class excelcolumn 該方法用來將excel中的abcd列轉換成具體的資料 param column abcd列名稱 return integer 將字母列名稱轉換成數字 public static int excelcolstrtonum string column r...

RS匯出Excel交叉表角對應的列占用多列問題

在cognos報表展示的時候,很多使用者為了計算會把資料包表匯出成excel然後再做統計,於是乎我做的一張報表匯出成excel的時候就出現了這樣的問題 從上圖可以看出交叉表角對應的列 一級手術 和 二級手術 在報表裡面是一列資料,但是匯出的時候卻占用了兩列,而後面非交叉表角對應的列匯出顯示正常 問題...

POI 獲取Excel列數和行數的方法

獲取指定行,索引從0開始 hssfrow hssfsheet.getrow 1 獲取指定列,索引從0開始 hssfcell hssfrow.getcell short 6 獲取總行數 int rownum hssfsheet.getlastrownum 獲取乙個excel 中的總記錄數 int ro...