Java Excel 列号数字与字母互相转换

原创 2015年07月08日 17:31:25

Java Excel 列号数字与字母互相转换


Java Excel 列号数字与字母互相转换

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

Java实现

Java:

package test;

/**
 * Deal with Excel column indexToStr and strToIndex
 * @author Stephen.Huang
 * @version 2015-7-8
 * @see http://blog.csdn.net/u010571844
 */
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 poi Excel xls列号数字转字母

最近遇到导出的xls中 列是动态生成的,且单元格中需要用到公式,而xls公式不是用数字列号而是用列字母来表示的,这时需要把数字的列号转成该列对应的字母。因为是按月导出 一个月最多31天,所以刚开始采用...
  • lf124
  • lf124
  • 2016年12月02日 16:24
  • 1251

获取EXCEL中对应的列英文字母标识符(字母序列/列标题)(JAVA实现)

已经发现更有效的算法,请参考《Excel中列数字与字母的转换(JAVA实现)》如果您有兴趣,可以继续阅读!  最近的一个专案中客户有这么一个需求:读取EXCEL档案的时候,需要做一些处理,但当处理某个...

java 数字与字母的转换

public class TestConvert { // 将字母转换成数字_1 public static String t1(String input) { String reg...

java 数字转换成字符串

各种数字类型转换成字符串型: String s = String.valueOf( value); // 其中 value 为任意一种数字类型。 字符串型转换成各种数字类型: String s = "...
  • yu444
  • yu444
  • 2010年12月29日 17:05
  • 81759

java 数字与字母的转换

转载自:http://blog.csdn.net/ge_zhiqiang/article/details/7643683 public class TestConvert {        //...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

POI 获取Excel列数和行数的方法

//获取指定行,索引从0开始 hssfRow=hssfSheet.getRow(1); //获取指定列,索引从0开始 hssfCell=hssfRow.getCell((short)6); //...

Java indexOf()的两个用法

int indexOf(int ch,int fromIndex)函数:就是字符ch在字串fromindex位后出现的第一个位置.没有找到返加-1 eg:String str="a2dfcfar...

二分查找中求中值时要注意溢出

// BinarySearch.cpp : Defines the entry point for the console application. // #include "stdafx.h" i...
  • lampqiu
  • lampqiu
  • 2014年08月29日 11:35
  • 2170
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java Excel 列号数字与字母互相转换
举报原因:
原因补充:

(最多只允许输入30个字)