Excel行列数字字母转换实现
背景:
Excel的列索引使用的是字母索引,某些开发中需要我们自己转换为数字,或者将数字转换为字母,比如基于Excel的公式,用户经常输入A1来表示引用Cell(0,0)的值。这时候我们需要把A转换为数字索引号;在显示的时候我们需要把0,0这样的坐标转换为A1显示,就需要把数字索引转换为字母索引。比如下面是LZ正做的一个项目,用到的:
废话不多说,直接看实现,下面是基于JavaScript的实现(转换为Java语言很容易),算法不做描述了,其实就是一个26进制的转换,可以参考16进制转换算法。
字母转换为数字:
/*** 字母转换为数字* @param {String} str*/
function str2Num(str) {var base = 'A'.charCodeAt(0);//找到A的码表大小var r = 0;for (var i = 0; i < str.length; i++) {//遍历每个位置r = r * 26 + str.charCodeAt(i) - base + 1;}return r - 1;
};
上面算法不难理解,只要学过数据结构、算法的应该都知道那个“输入m输出m个1”二者类似,以此遍历每个位置,然后乘以该位置的基数即可。
数字转换为字母:
/**
* 将数字索引转换为英文字母
* @param {Number} colIndex
*/
function num2Str(colIndex) {colIndex += 1;if (colIndex <= 0) {return "";}var str = "";var result = "";var A = 'A';while (colIndex != 0) {var num = colIndex % 26; // 取最后一位var c = A.charCodeAt(0) + num - 1;colIndex = Math.floor(colIndex / 26); //返回值小于等于其数值参数的最大整数值。// 对于26的特殊处理if (num == 0) {//c = A.charCodeAt(0) + 26;str = 'Z';colIndex -= 1; //退位} else {str = String.fromCharCode(c);}// 3.插入result += str;}if (result.length > 1) {result = result.split('').reverse().join("");}return result;
};
数字转换为字母的算法类似10进制转换为16进制,其实就是求余。
下面是基于上面的Web小工具,用于行里字母数字索引转换,源码就不贴出来了,核心的都在上面,就是简单的包装了下,直接下载即可。
http://download.csdn.net/detail/hackersaillen/8797407Excel行列数字字母转换实现相关推荐
- angular 字符串转换成数字_3种方法搞定Excel中数字大小写转换? 123...变为壹贰叁......
作者 | 雷哥 编辑 | 小西瓜 职场中,大家是否遇到这样的情况, 需要把数字"1,2,3......" 转换为 大写的"壹贰叁...",大家都有哪些方法可以实 ...
- excel的大小写字母转换函数(LOWER、UPPER、PROPER)
目录 1.LOWER函数 2.UPPER函数 3.PROPER函数 1.LOWER函数 (1)语法:LOWER(text) 即LOWER(目标单元格或文本) 参数:text表示目标文本或者单元格 (2 ...
- ExcelVBA 宏 将数字转换为列号/列字母/列名 数字字母转换
1.利用自带的columns函数 如Columns(27).Address表示27列的地址,也就是"$AA:$AA" 2.使用split函数 按照字符"$"进行 ...
- python数字形式转换_python将字母转化为数字实例方法
python将字母转化为数字实例方法 python如何将字母转化为数字? 将英文字母转成数字: 转换 ord('F') 反转 chr(70) python ord() 函数 是 chr() 函数(对于 ...
- oracle行列转换关联union的方式_几行代码轻松玩转 Excel 行列转换
几行代码轻松玩转 Excel 行列转换 下面这种交叉式的 Excel 表是很常见的格式,用来填写和查看都比较方便: 但是,如果想做进一步的统计分析,这种格式就不方便了,需要行列转换,变成如下格式的明细 ...
- [要记的]excel中把字母变为数字
[要记的]excel中把字母变为数字 file-option-公式选择引用.
- 将 字母 转换数字(1-26)
在开发中遇到根据字母进行排序,需要将字母转换成大写,然后 再将大写字母 转换成数字: 如: //choice 字母 //index 下标 public void getIndexs(String ch ...
- 将数字月份转换成英语字母的月份的例子
将数字月份转换成英语字母的月份的例子 注意:输入数字时要将字符型变成整型 #将数字月份转换成英语字母的月份的表达形式 def month():months="JanFebMarAprMayJ ...
- Excel行列转置(行数据与列数据的转换)
Excel行列转换的方法就是选择性粘贴. 将以行形式存储的数据复制后,选中其他空白单元格,右键,选择"选择性粘贴",打开"选择性粘贴"对话框,勾选"转 ...
最新文章
- 蓝桥杯_算法训练_ALGO12_摆动序列
- Windows Phone 开发起步之旅之二 C#中的值类型和引用类型
- 流水线可靠数据传输协议
- leetcode700. 二叉搜索树中的搜索
- (52)多路时钟复用FPGA如何约束一(片外时钟复用约束)
- Leecode刷题热题HOT100(13)——罗马数字转整数
- vue-cli部署ngixs_nginx部署访问vue-cli搭建的项目的方法
- 【实用工具】linux Can‘t bind address: Address already in use
- sklearn 线性回归_机器学习初级算法(二)——线性回归
- C# 怎么生成DLL文件(转)
- python批量修改图片尺寸
- java 二次封装azkaban 实现azkaban任务的执行
- dither(抖动)
- ddl(ddl是什么意思网络语)
- 【Zeekr_Tech】为自动驾驶保驾护航—谈谈主流中间件设计
- vue中使用vue-awesome-swiper的方法(实现一屏展示多个图片,点击左右滚动一张)
- HyperLynx(三十一)高速串行总线仿真(三)
- 2021年危险化学品经营单位主要负责人考试内容及危险化学品经营单位主要负责人考试资料
- 【转】从链下治理到理想治理模式
- 文件共享总结上篇-Windows之间文件共享
热门文章
- 蓝湖-简单好用的设计协作平台
- 起来,起来........
- 与计算机互动大学英语,【2017年整理】基于与网络和计算机的大学英语教学模式.ppt...
- 【链表】如何判断两个单向链表是否有相交,并找出交点
- stm32f407之基本定时器TIM6TIM7(操作寄存器)
- Python爬虫实战,pyecharts模块,Python实现奥斯卡金像奖数据可视化
- Android中的MVC详解
- 微信公众号授权(获取用户信息)
- hash计算在txt,doc中的细节(电子物证检验)
- 电脑总是开机黑屏,开机两次才能成功的解决办法:更新BIOS(七彩虹H410M-T PRO)