java数字转换成字母_Java实现的Excel列号数字与字母互相转换功能

本文实例讲述了Java实现的Excel列号数字与字母互相转换功能。分享给大家供大家参考,具体如下:

我们在实现对Excel的导入导出的时候,往往需要准确的给用户提示信息,提示到具体的Excel的单元格,这里就需要对Excel的列号进行数字和字母的转换,今天正好用到这个需求,所以就写了一个demo,总结一下:

Java实现:

package test;

/**

* Deal with Excel column indexToStr and strToIndex

* @author Stephen.Huang

* @version 2015-7-8

*/

public class ExcelColumn {

public static void main(String[] args) {

String colstr = "AA";

int colIndex = excelColStrToNum(colstr, colstr.length());

System.out.println("'" + colstr + "' column index of " + colIndex);

colIndex = 26;

colstr = excelColIndexToStr(colIndex);

System.out.println(colIndex + " column in excel of " + colstr);

colstr = "AAAA";

colIndex = excelColStrToNum(colstr, colstr.length());

System.out.println("'" + colstr + "' column index of " + colIndex);

colIndex = 466948;

colstr = excelColIndexToStr(colIndex);

System.out.println(colIndex + " column in excel of " + colstr);

}

/**

* Excel column index begin 1

* @param colStr

* @param length

* @return

*/

public static int excelColStrToNum(String colStr, int length) {

int num = 0;

int result = 0;

for(int i = 0; i < length; i++) {

char ch = colStr.charAt(length - i - 1);

num = (int)(ch - 'A' + 1) ;

num *= Math.pow(26, i);

result += num;

}

return result;

}

/**

* Excel column index begin 1

* @param columnIndex

* @return

*/

public static String excelColIndexToStr(int columnIndex) {

if (columnIndex <= 0) {

return null;

}

String columnStr = "";

columnIndex--;

do {

if (columnStr.length() > 0) {

columnIndex--;

}

columnStr = ((char) (columnIndex % 26 + (int) 'A')) + columnStr;

columnIndex = (int) ((columnIndex - columnIndex % 26) / 26);

} while (columnIndex > 0);

return columnStr;

}

}

测试结果:

‘AA' column index of 27

26 column in excel of Z

‘AAAA' column index of 18279

466948 column in excel of ZNSN

希望本文所述对大家java程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值