zoukankan      html  css  js  c++  java
  • Excel列名 字母和数字的转换

    Excel的列名是由于字母组成的。 A-Z 分别代表1-26  AA 是27 AB是28 以此类推。

    以下是这种编码的转换方法,如果遇到需要用纯字母编号来表示数字的时候可以用到。

    /**
     * 类似EXCEL的列头编号的转换方法
     */
    public class AlphaIntegerTest {
    
      /**
       * 将数值转换成A-Z的字母表示
       * 
       * @param value 数值
       * @return 字母表示
       */
      public static String toAlphaString(int value) {
        if (value <= 0) {
          throw new IllegalArgumentException();
        }
        StringBuilder result = new StringBuilder();
        do {
          value--;
          int n = value % 26;
          result.append(((char) (n + (int) 'a')));
          value = (int) ((value - n) / 26);
        } while (value > 0);
        return result.reverse().toString();
      }
    
      /**
       * 将编号转换成数值
       * 
       * @param value 编号
       * @return 编号代表的数值
       */
      public static int parseIntByCode(String value) {
        if (value == null || !value.matches("[a-zA-Z]+")) {
          throw new IllegalArgumentException();
        }
        char[] chars = value.toLowerCase().toCharArray();
        int index = 0;
        for (int i = 0; i < chars.length; i++) {
          index += ((int) chars[i] - (int) 'a' + 1) * (int) Math.pow(26, chars.length - i - 1);
        }
        return index;
      }
    
    
      // 测试
      public static void main(String[] args) {
        System.out.println(toAlphaString(1));
        System.out.println(toAlphaString(1 + 26));
        System.out.println(toAlphaString(1 + 26 + 26 * 26));
        System.out.println(toAlphaString(1 + 26 + 26 * 26 + 26 * 26 * 26));
        System.out.println(parseIntByCode("a"));
        System.out.println(parseIntByCode("aa"));
        System.out.println(parseIntByCode("aaa"));
        System.out.println(parseIntByCode("aaaa"));
      }
    
    }
    
  • 相关阅读:
    阿里云 CDN+OSS 解决方案
    一次完整的HTTP请求过程
    apache多站点配置中ServerAlias什么意思
    legend3---apache配置https
    legend3---Fiddler如何抓手机app的包
    Fiddler:增加IP列
    http请求报文格式和响应报文格式
    http请求头中Referer的含义和作用
    Chrome保存的HAR文件怎么打开
    Android Studio 错误 Duplicate files copied in APK META-INF/LICENSE.txt
  • 原文地址:https://www.cnblogs.com/relucent/p/4728518.html
Copyright © 2011-2022 走看看