Java excel坐标计算

发布于:2025-06-22 ⋅ 阅读:(15) ⋅ 点赞:(0)
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;
   }

}

网站公告

今日签到

点亮在社区的每一天
去签到