根据数字获取Excel的列,比如 输入 1 得到 A,输入26 得到 Z, 输入 29 得到 AC
/**
* 从白哥那借鉴(copy)的方法,牛逼plus
* 获取Excel的列,比如 输入 1 得到 A,输入26 得到 Z, 输入 29 得到 AC
*
* @param $index
* @return string|void
*/
public function getExcelValue($index)
{
$index = (int)$index;if ($index <= 0) return; //输入检测
$dimension = ceil(log(25 * $index + 26, 26)) - 1; //算结果一共有几位,实际算的是位数减1,记住是26进制的位数
$n = $index - 26 * (pow(26, $dimension- 1) - 1) / 25; //算结果在所在位数总数中排第几个
$n--; //转化为索引
return str_pad(
str_replace(
array_merge(range(0, 9), range('a', 'p')),
range('A', 'Z'), base_convert($n, 10, 26)
), $dimension, 'A', STR_PAD_LEFT
); //翻译加补齐
}
本文来自博客园,作者:alisleepy,转载请注明原文链接:https://www.cnblogs.com/alisleepy/p/13638391.html