Home >php教程 >php手册 >php生成excel列名超过26列大于Z时的解决方法

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

WBOY
WBOYOriginal
2016-06-06 20:15:151642browse

这篇文章主要介绍了php生成excel列名超过26列大于Z时的解决方法,是针对采用PHPExcel生成excel列数过多的情况下的完善技巧,具有一定的参考借鉴价值,需要的朋友可

本文实例讲述了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                 $_indexCache[$pColumnIndex] = chr(65 + $pColumnIndex); 
            } elseif ($pColumnIndex                 $_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程序设计有所帮助。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn