excel 列索引(数字)转列名
2017-08-30 14:38
761 查看
1 function index2ColName($columnNumber) 2 { 3 $dividend = $columnNumber; 4 $columnName = ''; 6 7 while ($dividend > 0) 8 { 9 $modulo = ($dividend - 1) % 26; 10 $columnName = chr(65 + $modulo) . $columnName; 11 $dividend = intval(($dividend - $modulo) / 26); 12 } 13 14 return $columnName; 15 }
百度来的算法全都不对,跟我一开始想的一样——把这个问题考虑成了10到26进制的转换,但事实并非如此。
想想以下情况,26进制用A代表数0,B代表数1……Z代表25。
那么表示26则需要进一位,即BA, 而excel里面Z列的下一列是AA。
我们的二十六进制体系里, AA = 00 = 0 = A。 So, 这个想法是错误的。
最后还是谷歌大法好,5分钟解决问题。
参考链接:
https://stackoverflow.com/questions/181596/how-to-convert-a-column-number-eg-127-into-an-excel-column-eg-aa
相关文章推荐
- 【算法】Excel中的列名与数字的对应
- 将数字转换为EXCEL列名的方法
- LeetCode--Excel Sheet Column Number(Excel表格的列名转数字)Python
- VBA - 设置EXCEL列名为数字
- EXCEL表列名变为数字了怎么办?
- 数字转换成excel列名(10进制到Excel的26进制的转换函数)
- DataTable用数字索引和用列名索引的性能区别
- 字母和数字的转换——Excel列名
- 字母和数字的转换——Excel列名
- EXCEL列名与数字之间转换
- Excel列名 字母和数字的转换
- SqlBulkCopy excel 字段映射解决办法二 使用数字索引代替 字段名称 做映射 避免字段中有中文 大小写等情况
- java编程实现根据EXCEL列名求其索引的方法
- 将整数索引转换为Excel对于的列名,比如输入1,返回“A”,输入27,返回“AA”
- 数字转换成excel列名(10进制到Excel的26进制的转换函数)
- java中将数字转换成excel中列名
- 数字转换成excel列名(10进制到Excel的26进制的转换函数)
- Excel列名 字母和数字的转换
- -------------------------数字转换成EXCEL列名---------------------------------
- 将Excel中的字母列名转换成数字的算法