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"));
} }

Excel列名 字母和数字的转换的更多相关文章

  1. 转载: 黄聪:C#中 Excel列字母与数字的转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. [No0000107]C#中 Excel列字母与数字的转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  3. WORD2010如何把全角字母和数字批量转换成半角

    个人觉得全角字符看起来相当别扭,如果文档中存在大量全角形式的字母和数字,要如何把它们全部转化成半角的呢?   全角和半角   全角是指一个字符占用两个标准字符位置的状态.汉字字符和规定了全角的英文字符 ...

  4. 在EXCEL带有字母的数字下拉如何能自动排序

    在excel中0,1,2,3,4,5,6,7,8,9会自动排序,a,b,c,d,e,f,g.....会自动排序,所以可以分布来实现. 例如排序:fish1a.png,fish1b.png,fish1c ...

  5. Java将Excel的列数以字母表示的字符串转换成数字表示

    我们知道,在 Excel 中,行数用数字表示,而列数是用字母表示的(如下图所示),有时候需要把它转换成数字来使用,或者把数字转换成字母.(例如使用POI操作Excel) 下面是转换代码,用来进行字母和 ...

  6. Python 3 实现数字转换成Excel列名(10进制到26进制的转换函数)

    背景: 最近在看一些Python爬虫的相关知识,讲爬取的一些数据写入到Excel表中,当时当列的数目不确定的情况下,如何通过遍历的方式讲爬取的数据写入到Excel中. 开发环境: Python 3  ...

  7. 微软白板Excel xls列号数字转字母

    Excel xls列号数字转字母 https://blog.csdn.net/lf124/article/details/53432817?utm_source=itdadao&utm_med ...

  8. EXCEL 数字统一转换成文本

    将excel中的数字统一转换成文本形式.即添加‘. 1.点击数据-分列. 2.分隔符号-下一步. 3.选择文本识别符号,如“‘”分号. 4. 选中文本-完成.

  9. Excel 列名转int索引(C#版)

    /// <summary> /// 获取Excel实际列索引 /// </summary> /// <param name="columnName"& ...

随机推荐

  1. python中x,y交换值的问题

    今天碰到了python和其他语言不同的问题:赋值语句 x,y,z=1,2,3,执行 z,x,y=y,z,x 后,x.y.z 中分别含有什么值? 我想的是 x=2  y=2  z=2 可调试后应该是:x ...

  2. php工作笔记7-概率算法

    a/m  b/m   c/m   d/m   10%    40%    20% a+b+c+d+... < = m array k   =  {a,b,c...} randt = rand(1 ...

  3. javascript date picker

    一个简洁的date picker <html><head><meta http-equiv="Content-Type" content=" ...

  4. thinkphp修改及编写标签库,编辑器的使用

    在view目录下创建Index_aaa.html <!DOCTYPE html> <html> <head> <meta charset="UTF- ...

  5. 读取excel数据,并进行统计输出

    package cn.cnnic.ops; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFou ...

  6. springboot 使用c3p0数据库连接池的方法

    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了.所以使用c3p0连接池吧. 引入的maven依赖: <dependenc ...

  7. Google Protocol Buffer 的使用

    简介 Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准,目前已经正在使用的有超过 48,162 种报文格式定义和超过 12,183 ...

  8. mysql5.7忘记密码

    注意:mysql5.7 user表密码字段由password改为authentication_string 1.service mysql stop 2.mysqld_safe --skip-gran ...

  9. openfire 连接sqlserver 2008 的一个问题

    由于本人的笨拙,搞了一天才终于搞好,说实在的问题归根结底还是在sql上,要相信openfire是没问题的.好了,不瞎扯了,说正题. 本人的机器环境为:win7.sqlserver 2008.jdk1. ...

  10. 一个不错的loading效果--IT蓝豹

    一个不错的loading效果 介绍:一个不错的loading加载效果,弹性收缩,效果不错,学习android动画的朋友可以下载来研究研究本例子其实由SeekBar实现,由MetaballView,Me ...