PHP Int与Excel列相互转换

简单PHP将Int类型数值转换为Excel表的列名称,PHP版本推荐7.2+

注意:本文的数值起始值为0,而不是1,有其他需求的根据实际情况做相应调整后再使用。

数值转换为Excel列

/**
 * 数值转换为Excel列
 *
 * @author Wenhsing <wenhsing@qq.com>
 *
 * @param integer $num
 * @return string
 */
function int2Excel(int $num)
{
    $az = 26;
    $m = (int)($num % $az);
    $q = (int)($num / $az);
    $letter = chr(ord('A') + $m);
    if ($q > 0) {
        return int2Excel($q - 1) . $letter;
    }
    return $letter;
}

Excel列转换为数值

/**
 * Excel列转换为数值
 *
 * @author Wenhsing <wenhsing@qq.com>
 *
 * @param string $str
 * @return integer
 */
function excel2Int(string $str)
{
    $num = 0;
    $strArr = str_split($str, 1);
    $lenght = count($strArr);
    foreach ($strArr as $k => $v) {
        $num += ((ord($v) - ord('A') + 1) * pow(26, $lenght - $k - 1));
    }
    return $num - 1;
}

验证

echo excel2Int('AAC') . PHP_EOL;
echo int2Excel(704) . PHP_EOL;
posted @   Wenhsing  阅读(560)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示