技术&日志

PHP十进制数字转换为26进制字母函数

导出数据至Excel的时候要知道对应的列, A1 B1 C1 但有时候可能并不知道到哪个一个才是终止的, 要随着数据的增加而增加,此时就需要数字转成对应Excel里的值.

function num2Letter($num) {
    $num = intval($num);
    if ($num <= 0)
        return false;
    $letterArr = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z');
    $letter = '';
    do {
        $key = ($num - 1) % 26;
        $letter = $letterArr[$key] . $letter;
        $num = floor(($num - $key) / 26);
    } while ($num > 0);
    return $letter;
}

转自文章