在Excel中,列名是从A到Z的字符,如果需要更多的列,则继续使用AA, AB ...

我想写一个函数,将整数转换成excel列名.

0 .... A
25 ... Z
26 ... AA

我想出的解决方案是最多AZ个,但我希望它能进一步发挥作用.

function indexToXlxsColumn($index, $prefix="")
{
    if($index < 26)
    {
        return $prefix.chr($index+65);
    }else{
        return indexToXlxsColumn($index % 26, "A");
    }
}

如何调整此函数以适用于每个索引without producing spaghetti code

推荐答案

问题就在这里

return indexToXlxsColumn($index % 26, "A");

你把下一层的前缀设为A,当你

纸上谈兵

function indexToXlxsColumn($index, $prefix="")
{
    if($index < 26) // 53 isnt less then 26
                    // second loop , 1 is less then 26 
    {
        return $prefix.chr($index+65);
     // $prefix = A 
     // chr($index+65) = B
     // return "A"."B" ;
    
    }else{ 
        return indexToXlxsColumn($index % 26, "A"); 
        // indexToXlxsColumn(53 % 26, "A") -> (1, "A")
    }
}

---更新---

请按照下面的问题回答

function indexToXlxsColumn($index, $suffix ="")
{
        if($index < 26){
            return chr($index+65).$suffix ;
        }
        return indexToXlxsColumn(($index - $index%26)/26-1, chr($index%26+65).$suffix );
}

Php相关问答推荐

PHP日期操作,将多个日期输出为格式化字符串

WooCommerce/WordPress:简单的产品属性显示

如何使用这种格式构建XML?

在WooCommerce产品变体SKU字段旁边添加自定义输入字段

如何在php中生成包含第100秒的时间序列?

闭包绑定$This和垃圾收集器

如何按类别过滤自定义帖子类型

CKEDITOR-如何在PHP中判断提交后的空数据

如何使用 PHP 将带有图像的文本上传到 Linkedin?

WooCommerce 以编程方式添加的费用不会持续存在

从 XAMPP 运行 shell 脚本时,意外标记(附近出现语法错误

使用自定义插件中的 WooCommerce 模板发送自定义邮箱

在 WordPress 中将自定义帖子类型永久链接设置为 root

Woocommerce的数量和价格条件

如何修复正则表达式以在换行符后查找非数值

带有 nginx 的 Symfony 不提供 .js 和 .css 文件

如何在 WooCommerce 中显示每个自定义选项卡的内容

如何限制for循环php中的条目数

在 DomPDF 和 Laravel 中使用内联 css

多排序子数组 - 包含范围数据的子数组