Java : Excel Cell名->Apache POI Cell位置変換処理

概要

Apache POIでのExcelセル指定は0~の数字。
実際のExcel上ではA~の英字。ZまでいくとAA、ZZまでいくとAAAとなる。
プログラミング上でもExcel上の表記と合わせたいと考え作成。

コード

/**
 * Excel Cell名->POI Cell位置変換処理
 * @param cellString Excel Cell名(A-)
 * @return POI Cell位置(0-) -1 : 異常時
 */
static public int changeCellNo(String cellString) {
    int cellNo = -1;
    String reg = "^[A-Z]+$";
    Matcher matcher = Pattern.compile(reg).matcher(cellString);
    if(matcher.find() == true) {
        char[] cellChars = cellString.toCharArray();
        for(int i = cellChars.length - 1, j = 0; i >= 0; i--, j++) {
            cellNo += ((int)cellChars[i] - 65 + 1) * (j == 0 ? 1 : (int)Math.pow(26, j));
        }
    }
    return cellNo;
}

memo

旧ブログ記事2014年1月14日の再掲載。

Java

Posted by shi-n