php生成excel列名超过26列大于Z时的解决方法

yipeiwu_com7年前PHP代码库

本文实例讲述了php生成excel列名超过26列大于Z时的解决方法。分享给大家供大家参考。具体分析如下:

我们生成excel都会使用phpExcel类,这里就来给大家介绍在生成excel列名超过26列大于Z时的解决办法,这是phpExcel类中的方法,今天查到了,记录一下备忘,代码如下:

复制代码 代码如下:
public static function stringFromColumnIndex($pColumnIndex = 0) 
{ 
        //  Using a lookup cache adds a slight memory overhead, but boosts speed 
        //  caching using a static within the method is faster than a class static, 
        //      though it's additional memory overhead 
        static $_indexCache = array(); 
  
        if (!isset($_indexCache[$pColumnIndex])) { 
            // Determine column string 
            if ($pColumnIndex < 26) { 
                $_indexCache[$pColumnIndex] = chr(65 + $pColumnIndex); 
            } elseif ($pColumnIndex < 702) { 
                $_indexCache[$pColumnIndex] = chr(64 + ($pColumnIndex / 26)) . chr(65 + $pColumnIndex % 26); 
            } else {
                $_indexCache[$pColumnIndex] = chr(64 + (($pColumnIndex - 26) / 676)) . chr(65 + ((($pColumnIndex - 26) % 676) / 26)) . chr(65 + $pColumnIndex % 26); 
            } 
        } 
        return $_indexCache[$pColumnIndex]; 
}

将列的数字序号转成字母使用,代码如下:
复制代码 代码如下:
PHPExcel_Cell::stringFromColumnIndex($i); // 从o开始

将列的字母转成数字序号使用,代码如下:

复制代码 代码如下:
PHPExcel_Cell::columnIndexFromString('AA');

希望本文所述对大家的php程序设计有所帮助。

相关文章

php项目打包方法

php项目打包方法

大家经常会接到一些编程的活,例如设计企业网站,做做财务,统计系统什么的。或许是因为朋友的需求,或许图个零花。不管什么原因吧。等程序做好了,给对方展示、安装,就成了问题。企业网站好说,至少...

PHP strncasecmp字符串比较的小技巧

只是这样就需要转换两次。大多时候,我们是针对字符集转换的时候才会这样,比如判断参数传进来是否utf-8,这5个字符的写法,可就多了,比如UTF-8,Utf-8,utf-8等,那我们怎么办...

PHP下10件你也许并不了解的事情

另一方面,有时候可以用一行简单的代码就能解决一个难题。 下面是一些很酷的特性,很可能你也没有注意到: 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存...

PHP正则替换函数preg_replace和preg_replace_callback使用总结

在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换)。 详情介...

PHP 最大运行时间 max_execution_time修改方法

如下: --------------------------------------------------------------------------------------- /...