Excel 列名与列号之间的相互转换
程序员文章站
2022-07-16 08:21:04
...
1.概述
在sheet中,表元A1, B1, C1….:字母表示列号,数字表示行号
2.代码实现
package util;
/**
1. 工具类
2. */
public final class ExcelUtil {
/**将Sheet列号变为列名
* @param index 列号, 从0开始
* @return 0->A; 1->B...26->AA
*/
public static String index2ColName(int index) {
if (index < 0) {
return null;
}
int num = 65;// A的Unicode码
String colName = "";
do {
if (colName.length() > 0) {
index--;
}
int remainder = index % 26;
colName = ((char) (remainder + num)) + colName;
index = (int) ((index - remainder) / 26);
} while (index > 0);
return colName;
}
/**根据表元的列名转换为列号
* @param colName 列名, 从A开始
* @return A1->0; B1->1...AA1->26
*/
public static int colName2Index(String colName) {
int index = -1;
int num = 65;// A的Unicode码
int length = colName.length();
for (int i = 0; i < length; i++) {
char c = colName.charAt(i);
if (Character.isDigit(c)) break;// 确定指定的char值是否为数字
index = (index + 1) * 26 + (int)c - num;
}
return index;
}
}
3.测试 - 列号转列名
- 代码实现
package test;
import util.ExcelUtil;
public class TestIndex2ColName {
public static void main(String[] args) {
System.out.println("列号转换为列名:");
System.out.println("0 --> " + ExcelUtil.index2ColName(0));
System.out.println("1 --> " + ExcelUtil.index2ColName(1));
System.out.println("2 --> " + ExcelUtil.index2ColName(2));
System.out.println("26 --> " + ExcelUtil.index2ColName(26));
System.out.println("27 --> " + ExcelUtil.index2ColName(27));
System.out.println("28 --> " + ExcelUtil.index2ColName(28));
System.out.println("702 --> " + ExcelUtil.index2ColName(702));
System.out.println("703 --> " + ExcelUtil.index2ColName(703));
System.out.println("704 --> " + ExcelUtil.index2ColName(704));
}
}
- 测试结果
4.测试 - 表元转列号
- 代码实现
package test;
import util.ExcelUtil;
public class TestColName2Index {
public static void main(String[] args) {
System.out.println("表元列名转换为列号:");
System.out.println("A1 --> " + ExcelUtil.colName2Index("A1"));
System.out.println("B1 --> " + ExcelUtil.colName2Index("B1"));
System.out.println("C1 --> " + ExcelUtil.colName2Index("C1"));
System.out.println("AA2 --> " + ExcelUtil.colName2Index("AA2"));
System.out.println("AB2 --> " + ExcelUtil.colName2Index("AB2"));
System.out.println("AC2 --> " + ExcelUtil.colName2Index("AC3"));
System.out.println("AAA1 --> " + ExcelUtil.colName2Index("AAA1"));
System.out.println("AAB1 --> " + ExcelUtil.colName2Index("AAB1"));
System.out.println("AAC1 --> " + ExcelUtil.colName2Index("AAC1"));
}
}
2.测试结果
上一篇: Mapreduce实例(三):求平均值
下一篇: (转)PHP操作Postgresql类