Excel 地址 行列转换

一.输入Excel地址转行列

1.问题描述

  Excel地址转换。例如:A1 ------>(1,1) AA1------>(1,27) BX23----->(23,76)

2.解题思路

  1.1 首先判断输入的内容是否满足要求。若输入内容有不为数字且不为英文字母的字符,要求重新输入。

  1.2 若所得串s满足要求,将串中的英文字母与数字分为两个串s1和s2分别对应行和列,

     再分别对s1和s2的合理性进行判断。其中s1长度不应超过2位,s2中不能出现出数字之外的字符。

  1.3 将s1、s2分别转成对应数字a、b。输出(a,b)

  详情如下图:

 

            

3.程序

import java.util.Scanner;

//2017.03.18
//2.Excel地址转换  A1---》(1,1) AA5---》(5,27) 反向?
public class W03182 {

    static Scanner scan = new Scanner(System.in);
    
    //将字母表示的列数转换为数字
    static int zhuan_huan1(String s){
        if(s.length()==1) return (int)s.charAt(0)-'A'+1;
        return ((int)s.charAt(0)-'A'+1)*26 + zhuan_huan1(s.substring(1));
    }
    
    //将代表行列数的两个串转换为数字
    static void zhuan_huan(String s1,String s2){
        int a = Integer.parseInt(s1);
        int b = zhuan_huan1(s2);
        System.out.println(String.format("(%d,%d)", a,b));
        
    }
    //键盘输入Excel地址,进行转换
    static void work(){
        while(true){
            System.out.println("如要退出请输入q");
            System.out.println("请输入:");
            scan = new Scanner(System.in);
            String s = scan.nextLine().toUpperCase();
            if(s.trim().equals("Q")) break;
            try{
                if(s.charAt(0)<'A'||s.charAt(0)>'Z') throw new Exception();
                for(int i=0;i<s.length();i++){
                    if((s.charAt(i)<'A'||s.charAt(i)>'Z')&&(s.charAt(i)<'0'||s.charAt(i)>'9')) throw new Exception();
                }
                int k = 0;
                for(int i=0;i<s.length();i++){
                    if(s.charAt(i)>='1'&&s.charAt(i)<='9'){
                        k = i;
                        break;
                    }
                }
                String s2 = s.substring(0, k); //
                String s1 = s.substring(k);        //
                if(s1.charAt(0)=='0') throw new Exception();
                for(int i=1;i<s1.length();i++){
                    if(s.charAt(i)<'0'||s.charAt(i)>'9') throw new Exception();
                }
                zhuan_huan(s1,s2);
            }catch(Exception e){
                System.out.println("输入有误,请重新输入。");
            }
        }
    }
    public static void main(String[] args) {
        work();
    }

}

4.运行情况。

二.输入行 列 转Excel地址

1.问题描述

  在键盘输入行和列,转换为excel地址。如:12 1 ----> A12  12 28 -----> AB12

2.解题思路

  输入行列,行分别转为数字和对应英文字母。

3.程序

import java.util.Scanner;

//2017.03.18
//2.Excel地址转换  A1---》(1,1) AA5---》(5,27) 反向?
public class W03182 {

    static Scanner scan = new Scanner(System.in);
    
        static void work2(){
        while(true){
            System.out.println("如要退出请输入q");
            System.out.println("请输入行:");
            scan = new Scanner(System.in);
            String s1 = scan.nextLine().toUpperCase();
            if(s1.trim().equals("Q")) break;
            System.out.println("如要退出请输入q");
            System.out.println("请输入列:");
            scan = new Scanner(System.in);
            String s2 = scan.nextLine().toUpperCase();
            if(s2.trim().equals("Q")) break;
            int a = 0;
            int b = 0;
            try{
                a = Integer.parseInt(s1);
                b = Integer.parseInt(s2);
            }catch(Exception e){
                System.out.println("输入有误,请重新输入。");
            }
            huan_zhuan(a,b);
        }
    }
    static void huan_zhuan(int a,int b){
    
        System.out.println(huan_zhuan1(b)+a);
    }
    static String huan_zhuan1(int b){
        String s = "";
        if(b<26) return ""+(char)('A'+b-1);
        int k = 0;
        while(b>26){
            k++;
            b = b - 26;
        }
        s = ""+(char)('A'+k-1)+(char)('A'+b-1);
        return s;
    }
    
    public static void main(String[] args) {
        //work();
        work2();
    }

}


4.运行情况

转载于:https://www.cnblogs.com/wusq/p/6576165.html

Excel行列转换技术详解及应用 Excel内置的COLUMN()函数同样适用于列号到数字的转换。对于简单的列号,使用COLUMN()就足够了。但对于更复杂的转换,例如,需要将列字母转换Excel所使用的数字序列,就需要自定义公式。Excel中的列字母其实是由26个基本字母的连续序列构。通过系列的数学计算,我们可以将列字母转换对应的数字。例如,可以使用以下公式来计算列字母对应的数字:该公式假设列字母位于A1单元格中,并计算了两层嵌套字母的情况。代码部分CODE() 阅读详情

相关推荐

JavaScript实现Excel单元格坐标解析

JavaScript中,字符串(String)是种表示文本的数据类型。字符串可以包含零个或多个字符,且字符串中的字符是不可变的。这意味着旦字符串被创建,就不能更改它的内容。字符串的定义通常有以下几种方式:使用单引号、双引号或反引号(ES6新增的模板字符串)来定义:javascript使用String()函数:javascript// "123"字符串字面量:javascript。

weixin_30951515的博客 516

excel 转换MAC地址格式方法

最后LOWER将所有大写改为小写,交换机有可能不识别大写的mac地址(H3C标准地址如此)1是指从A1里面的第1个字符开始,第步 SUBSTITUTE。A1是原mac地址所在位置。至此,mac地址转换。(复制之后导入交换机即可)

zz960226的博客 2679

C#读写Excel表格行列互转并输出

实现将excel行数据按行输出到新的excel,并按列展示,开发环境VS2012.可作为转换工具直接使用

excel文档快捷方式

MAC

weixin_46041124的博客 3723

excel统计mac地址

A1输入MAC地址。A2输入=LEFT(A1,15)&REPT("0",2-LEN(DEC2HEX(HEX2DEC(RIGHT(A1,2))+1)))&DEC2HEX(HEX2DEC(RIGHT(A1,2))+1),往下拉即可。 大数字累加  ="010210040000851"&ROW(A40496)  ; 转载于:https://www.cnblogs.com/...

weixin_30684743的博客 631

【亲测免费】 EXCEL中实现16进制MAC地址的下拉自动填充教程

EXCEL中实现16进制MAC地址的下拉自动填充教程 【下载地址EXCEL中实现16进制MAC地址的下拉自动填充教程分享 EXCEL中实现16进制MAC地址的下拉自动填充教程欢迎使用本资源,本教程将指导您如何在Microsoft Excel中创建个能够自动生并下拉递增的16进制MAC地址序列 ...

gitblog_06510的博客 1400

地址转换

题目:     Excel是最常用的办公软件。每个单元格都有唯地址表示。比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”。          事实上,Excel提供了两种地址表示方法,还有种表示法叫做RC格式地址。 第12行第4列表示为:“R12C4”,第5行第255列表示为“R5C255”。     你的任务是:编写程序,实现从RC地址格式到常规地址

Keep Thinking 582

题目描述 Excel是最常用的办公软件,每个单元格都有唯的地址表示,比如: 第12行第4列表示为:“D12", 第5行第255列表示为"IU5 事实上,Excel提供了两种地址表示方法,还有种表示法

题目描述 Excel是最常用的办公软件,每个单元格都有唯的地址表示,比如: 第12行第4列表示为:“D12", 第5行第255列表示为"IU5 事实上,Excel提供了两种地址表示方法,还有种表示法叫做RC格式地址。 第12行第4列表示为: "R12C4第5行第255列表示为"R5C255. 你的任务是:编写程序,实现从RC地址格式到常规地址格式的转换。 输入描述: 输入个整数2100)表示接...

qq_36388734的博客 1547

excel 行列互换 绿色工具(怎么把行变列,把列变行)

excel如何方便的进行行列互换,采用下面的介绍键即可完 个好用的excel行列互换绿色工具, 地址:http://www.excelfb.com/ 点击 : 将表换另外表格式 --》行列互换绿色工具。 下图中第四个就是工具的效果 ...

loubo_001的专栏 2946

matlab实现excel实现带表头的行列交换

利用matlab交换excel行列,并保留参数名称

cj2010phy的博客 259

1.3Excel--公式

1.1. 公式 1.1.1 概念 1.2 Excel公式–Excel基本公式3 1.2_1. Excel公式基本使用 选择单元格 键入等号“=”。(注意: Excel 中的公式始终以等号开头.) 选择个单元格,或在所选单元格中键入其地址。 输入运算符。 例如,- 代表相减。 选择下单元格,或在所选单元格中键入其地址。 按 Enter。 计算结果将显示在包含公式的单元格中。 1.2_1.1 查看公式 在单元格中输入公式时,该公式还会出现在编辑栏中。 要查看公式,请

Chaser_lim1024 753

Excel 如何把行变对应的多行,或者多行变对应的

Excel 如何把行变对应的多行,或者多行变对应的行,或者多行变另外种多行 工具支持Excel行变多行,多行转行,多行转多行,列变行,行变列,列内容合到个单元格、维转二维、二维转地址:www.excelfb.com点击 :将表换另外表格式 例如我们要进行以下表格转换(表1转换为表2),从上面界面中选择:行行格式转换...

loubo_001的专栏 3万+

excel引用指定单元格数据_Excel数据查找引用函数详解,看就会用 #办公技巧 #excel #职场

Lookup函数简介:在查找区域中搜索查找对象,并映射到结果区域,返回相同位置的值Lookup函数=LOOKUP(D2,A2:A6,B2:B6) 结果将找出与产品编号为1003相对应的产品名称VLookup函数简介:按列查找(纵向查找),找出与查找对象相匹配的其他列的值VLookup函数 =Vlookup("苹果",A1:B2,2,False) 结果为与苹果相匹配的单价HLookup函数简介:按行...

weixin_39594895的博客 8235

EXCEL如何批量更改MAC地址格式?

现在我统计的MAC地址是:80F62EB9DE50 如何在excel中用公式转换为:80:F6:2E:B9:DE:50 假设MAC地址在A1 在B1输入公式 =MID(A1,1,2)&":"&MID(A1,3,2)&":"&MID(A1,5,2)&":"&MID(A1,7,2)&":"&MID(A1,9,2)&":"&MID(A1,11,2)

nailwl 1万+

[office] excel获取行号、列号、列标和单元格地址 #媒体#媒体#知识分享

02、如果要获取指定单元格的行号,则在返回结果的单元格中输入=row(指定单元格),获取f9格所在的行,括号里就输入f9,确定后就返回了f9格所在的行为9。05、如果要获取指定行、列的单元格地址,则输入=ADDRESS(指定的行号,指定的列号),获取第9行,第5列的单元格地址为绝对地址E9。01、首先,我们来看看如何获取当前单元格的行号,在B1单元格中输入=row(),确定后就返回了B1格所在的行为1。04、如果要获取指定单元格的列号,则输入=column(指定的单元格),获取f9的列号为6。

2401_85471911的博客 5299

【蓝桥杯】【Excel地址转换

【题目】 Excel是最常用的办公软件。每个单元格都有唯地址表示。比如:第12行第4列表示为:“D12”,第5行第255列表示为“IU5”。 事实上,Excel提供了两种地址表示方法,还有种表示法叫做RC格式地址。 第12行第4列表示为:“R12C4”,第5行第255列表示为“R5C255”。 你的任务是:编写程序,实现从RC地址格式到常

bear_huangzhen的专栏 1684
上一篇: 第一个素数是2,求第50000个素数
下一篇: 用重定向方法从文件中读入或写入数据
a20080906
博客等级 码龄12年 1粉丝 0原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值