知识分类
后端
前端
设计
开源组件/产品
APP
其他
广告招募

php将数字转成EXCEL列名,支持大于26的数字

管理员
发布于:2024-10-18 19:10:07

直接上代码:


class Tool
{
    public function numToExcelLetter($num)
    {
        //由于大写字母只有26个,所以基数为26
        $base = 26;
        $result = '';

        while ($num > 0) {
            $mod = (int)($num % $base);
            $num = (int)($num / $base);

            if ($mod == 0) {
                $num -= 1;
                $temp = $this->numToLetter($base) . $result;
            } elseif ($num == 0) {
                $temp = $this->numToLetter($mod) . $result;
            } else {
                $temp = $this->numToLetter($mod) . $result;
            }
            $result = $temp;
        }

        return $result;
    }

    public function numToLetter($num)
    {
        if ($num == 0) {
            return '';
        }

        $num = (int)$num - 1;
        //获取A的ascii码
        $ordA = ord('A');
        return chr($ordA + $num);
    }
}

调用

    $tool = new Tool();
    $tool->numToExcelLetter(26);
上一篇:PBOOTCMS安全加固方法解析与实施指南
下一篇:webman 获取表中字段的详细方法
搜索内容
最新文章
  • 什么是GEO生成式引擎优化?和SEO
  • 如何保证文件上传安全?
  • Go语言时间格式为什么和其他语言不一
  • 软件许可协议有哪些?之间的区别是什么
  • FrameCoder非可站群框架支持
  • git忽略文件.gitignore,
  • 什么AI模型上下文协议(MCP)?M
  • 为什么有些页面的图片看不见?可能是被
  • 什么是AI智能体?AI智能体能做什么
  • 国内AI大模型有哪些?各模型间对比如
精彩文章
  • 1 MSYS2中安装使用GCC的正确方法
  • 2 Layui 怎么样更换主题颜色?
  • 3 vscode用一个插件快速生成Vue
  • 4 连接WIFI出现无Internet
  • 5 FrameCoder非可,基于web
  • 6 3步教你如何修改uniapp but
  • 7 JavaScript 判断对象是否为
  • 8 OBS在银河麒麟或ubuntu等核心
  • 9 什么是PHP站群以及使用php开源框
  • 10 小程序真机调试 报错 define
工信部备案:苏ICP备2023011827号-1
苏公网安备 32111202000338号