If you use Java to work with Excel files (for example, using HSSF from the Apache POI project), you might to cross the problem of converting an integer to a alphabetical columns naming.
That might seem trivial at first sight, but the Excel letter naming system is not easily convertible because of different handling of zero.
Here is the method I created for that task.
Note that this solution is general for any number; when counting on the
fact that Excel's last column is IV, this could be done using one
if
.
/** * Converts column number to Excel column characters name, e.g.: 43 => AQ * @autor Ondra Žižka */ private static String ConvertColumnNumberToChars( int i ){ if( i < 0 ) throw new UnsupportedOperationException("Converted number must be greater than zero."); int iBase = 'Z' - 'A'+1; if( iBase > Character.MAX_RADIX ) throw new UnsupportedOperationException("This JRE can't convert to radix greater than "+Character.MAX_RADIX); String interConversion = Integer.toString(i-1, iBase).toUpperCase(); System.out.print("inter: "+ interConversion +"; "); char[] ac = interConversion.toCharArray(); for( int j = 0; j < ac.length; j++ ) { int poziceOdzadu = ac.length - j - 1; char c = ac[j]; ac[j] = (char) ('A' - poziceOdzadu + Character.digit( c, iBase )); } return String.copyValueOf( ac ); }// private static String ConvertColumnNumberToChars( int i )
Keywords: Excel, column, number, integer, letter, column name, sheet, Java, POI, HSSF.
Výše najdete způsob, jak převést číslo sloupce v Excel tabulce na název složený z písmen. Nechce se mi to přepisovat do češtiny celé, tak aspoň tahle česká klíčová slova :-)