php生成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’);

时间: 2024-08-02 22:00:38

php生成excel列名,超过26列大于Z问题解决办法的相关文章

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

本文实例讲述了php生成excel列名超过26列大于Z时的解决方法.分享给大家供大家参考.具体分析如下: 我们生成excel都会使用phpExcel类,这里就来给大家介绍在生成excel列名超过26列大于Z时的解决办法,这是phpExcel类中的方法,今天查到了,记录一下备忘,代码如下: 复制代码 代码如下: public static function stringFromColumnIndex($pColumnIndex = 0)  {          //  Using a lookup

phpexcel导出超过26列解决方案

原文:phpexcel导出超过26列解决方案   将列的数字序号转成字母使用,代码如下:  PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,..开始,相应返回返回 A,B,C,...Z,AA,AB,...   将列的字母转成数字序号使用,代码如下:   PHPExcel_Cell::columnIndexFromString('AA');     使用phpexcel导出excel文件的时候,发现报了一个错误,后来查询问题才发现是列数超

jqGrid启用列冻结之后列高度不一致问题解决办法

1.喜欢又憎恨的列冻结功能 jqGrid 4.3.0版本发布中包含了一个我期待已久的功能--列冻结.和Excel中的冻结效果一样,把需要一直显示的列固定显示,其他辅助的列横向滚动显示,可以参考jqGrid的列冻结演示:http://trirand.com/blog/jqgrid/jqgrid.html,打开页面之后选择"Frozen Cols.Group Header(new)"的"Frozen column". 下图是正常情况: 但是,事情总是那么的不顺利-- 从

php的phpExcel类生成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

php生成excel列序号代码实例

 php生成excel列序号的方法,大家参考使用吧 代码如下: public function loop(){   $loop = 0;   $charnum = 65;      for(; $loop < 150; $loop++){    $quotient = intval($loop / 26);    $remainder = $loop % 26;      $f = $quotient>0? chr($charnum+$quotient-1) : '';    $s = $re

Excel技巧之对超过3列的数据排序

  对于许多经常使用Excel排序功能的用户来说,"排序"对话框只允许一次性设置3个关键字的限制实在难以满足需要.在如图所示的工作表中,有一个 5列数据的表格,如果需要按从左向右为关键字次序来排序,就成了一个难题,当单击菜单"数据"→"排序"后,在"排序"对话框中,无法设置"完成日期"和 "责任人"字段. 图1 Excel表格排序 事实上,Excel的排序的关键字并不受上图中这个对话框的

在数据库或excel中存在两列数据,如何自动实现生成图形化

问题描述 在数据库或excel中存在两列数据,如何自动实现生成图形化 在数据库或excel中存在两列数据,比如a对应ba对应c,b对应c.自动实现生成图形化,用方框和箭头表示,数据不重复.应该怎么做呀 解决方案 遍历数据,首先找到所有的节点,以方框的形式画出来,并且记下坐标.然后再读取关系数据,根据坐标绘制箭头.为了图形美观,你需要对这些节点排序,找到总交叉或者线长最小的,当然穷举可以做到,不过当数据量大的时候,你就需要用诸如退火算法或者遗传算法之类的启发式算法来求解了. 解决方案二: exce

使用NPOI生成Excel级联列表

原文:使用NPOI生成Excel级联列表 目录 1    概要    1 2    磨刀不误砍柴工--先学会Excel中的操作    2 3    利用NPOI生成导入模板    7 3.1    设置workbook&sheet    8 3.2    生成数据Sheet,并按规则列好    8 3.3    添加名称,并指定数据范围(绑定数据源)    9 3.4    写入大类和小类的数据验证    11   概要 博客使用Word发博,发布后,排版会出现很多问题,敬请谅解.另外Word发

EpPlus读取生成Excel帮助类+读取csv帮助类+Aspose.Cells生成Excel帮助类

大部分功能逻辑都在,少量自定义异常类和扩展方法 ,可用类似代码自己替换 //EpPlus读取生成Excel帮助类+读取csv帮助类,epplus只支持开放的Excel文件格式:xlsx,不支持 xls格式 /* ============================================================================== * 功能描述:EppHelper * 创 建 者:蒲奎民 * 创建日期:2016-07-21 14:30:35 * CLR Ver