package com.common.base.util.excel;
/**
* excel 坐标计算
*/
public class UtilExcelPosi {
/**
* deepseek生成 @ExcelProperty(index = UtilExcelPosi.pA)
*/
public final static int pA = 0;
public final static int pB = 1;
public final static int pC = 2;
public final static int pD = 3;
public final static int pE = 4;
public final static int pF = 5;
public final static int pG = 6;
public final static int pH = 7;
public final static int pI = 8;
public final static int pJ = 9;
public final static int pK = 10;
public final static int pL = 11;
public final static int pM = 12;
public final static int pN = 13;
public final static int pO = 14;
public final static int pP = 15;
public final static int pQ = 16;
public final static int pR = 17;
public final static int pS = 18;
public final static int pT = 19;
public final static int pU = 20;
public final static int pV = 21;
public final static int pW = 22;
public final static int pX = 23;
public final static int pY = 24;
public final static int pZ = 25;
/**
* 计算在execl中的x坐标 AA 为27
获得字母的ascii码
* @param chars
* @return
*/
public static int xToNumber(String chars)
{
byte[] cc = "A".getBytes();
// AB A为r_1转的值 B为r_2转的值
int r=0,r_1=0,r_2=0;
if(chars.length()==2)
{
cc = chars.substring(0,1).getBytes();
r_1=((int)cc[0]-64)*26;
cc = chars.substring(1,2).getBytes();
r_2=(int)cc[0]-64;
r=r_1+r_2;
}
if(chars.length()==1)
{
cc = chars.substring(0,1).getBytes();
r=(int)cc[0]-64;
}
return r-1;
}
/**
计算在execl中的x坐标 27 为 AA
获得字母的ascii码
* @param n
* @return
*/
public static String numberToX(int n){
String re="";
int aStart=65;
if(1<=n&&n<=26){
int asciiNu=n+aStart-1;
re=re+(char)(asciiNu);
}
if(27<=n){
String re1="",re2="";
int asciiNu1=n/26+aStart-1;
re1=re1+(char)(asciiNu1);
int asciiNu2=n%26+aStart-1;
re2=re2+(char)(asciiNu2);
re=re1+re2;
}
return re;
}
}