最近遇到這樣個問題,將資料寫進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...