操作Excel纵列(数值转字母)

前两天系统新增了一个报表分析的需求,需要给Excel添加函数,由于Excel纵列的元素是动态数据,无法确定各纵列在Excel中的下标,于是迂回了下,遍历数据创建纵列元素的时候保存其下标数值,再将下标数值转化为对应Excel纵列的A.B……AA.AB……,转的时候比较麻烦,上网搜了下,发觉相关信息很少,于是在这里记录一下,以备后用和参考。
1、忘记是哪位朋友的blog中的评论:

  public static String getExcelColumnLabel(int index){
        String rs = "";
          do {
           index--;
           rs = ((char) (index % 26 + (int) 'A')) + rs;
           index = (int) ((index - index % 26) / 26);
          } while (index > 0);
          return rs;
           }

测试了一下:

 System.out.println(getExcelColumnLabel(0));  //输出@
 System.out.println(getExcelColumnLabel(1));  //输出A
 System.out.println(getExcelColumnLabel(25)); //输出Y
 System.out.println(getExcelColumnLabel(26)); //输出Z
 System.out.println(getExcelColumnLabel(27)); //输出AA

发觉上述方法下标是从1开始,而Excel纵列的下标是从0开始的,由于赶时间也就凑合着用吧,后来闲暇的时候就另外弄了一个下标从0开始的,方法如下:

    /*****
    * @author     :QZC
    * @createDate :2015年12月8日 下午3:49:54
    * 函数功能描述:
    * @param col 从0开始
    * @return
    *****/
    public static String getExcelColumnLabel(int col) {
        if (col > 25) {
            return getExcelColumnLabel((col) / 26 - 1) + String.valueOf((char) ('A' + col % 26));
        }
        return String.valueOf((char) ('A' + col));
    }

测试:

 System.out.println(getExcelColumnLabel(0));  //输出A
 System.out.println(getExcelColumnLabel(25)); //输出Z
 System.out.println(getExcelColumnLabel(26)); //输出AA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值