PHP将整形数字转为Excel下标

1、背景

这两天在接到一个需求,需要导出一个班级所有学员的所有成绩,在最后excel表处理的时候发现导出的列超过了26列,后面会出现AA之类的下标,所以写了一个函数把数字整型转为Excel对应的下标。

2、转换函数

复制代码
/**
 * @Notes:将整数转为excel对应的列标
 * @Function int_to_chr
 * @param $index
 * @param $start
 * @return string
 * @Author gxk
 * @Date 2024/10/16
 * @Time 17:53
 */
function int_to_chr($index,$start=65) {
    $str = '';
    if($index >= 26){
        $les = $index % 26;
        $index = intval($index/26);
        $str .= int_to_chr($index-1);
        $str .= chr($start+$les);
        return $str;
    }
    return chr($start+$index).$str;
}

3、测试函数

复制代码
for ($i = 0; $i < 1352; $i++){
    dump($i."=>".int_to_chr($i));
}

4、测试结果(不分截图)

5、注意事项

(1)需要在传入的下标时候需要减一(因为转换函数的开始时A:65),在计算超过两个字符串(AA)的时候会出现第二位是0开始的,如果没有减一,就会出现偏差;

(2)检测的时候主要查看几个关键的部分,0是否转为A (4中图一),Z 的下一个是否为AA(4中图二)、AZ 的下一个是否为BA(4中图三)、ZZ的下一个是否为AAA(4中图四)

相关推荐
warm3snow2 天前
AI 重塑产品管理工具:从 Jira 到智能体项目经理的终极演进
人工智能·ai·excel·项目管理·飞书·产品经理·jira·协同·tapd
ServBay2 天前
告别面条代码,PSL 5.0 重构 PHP 性能与安全天花板
后端·php
JaguarJack4 天前
FrankenPHP 原生支持 Windows 了
后端·php·服务端
BingoGo4 天前
FrankenPHP 原生支持 Windows 了
后端·php
JaguarJack5 天前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo5 天前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack6 天前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay7 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954487 天前
CTF 伪协议
php
BingoGo9 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php