phpexcel导出excel的数据超过26列怎么办 Invalid cell coordinate [1(THINKPHP3.2中开发遇到的)

最近有个需求,THINKPHP3.2中对数据进行导出,数据一共有43项,导出时候就会抱错 Invalid cell coordinate [1

因为phpexcel 的cell.php里默认就设置了26列,而且判断方法里默认从a-z然后下一个列就是aa1了 ,而实际上在excel里z后面应该是AA,AB,AC,AD,AE,AF这样 所以需要改判断方法,我之前写过一篇excel的导出,只需要吧其中一个方法改动一下,改动的思想就是 当超过26列的时候 下一列命名应该是AA,AB,而不是  aa1,AA2,改进方法如下

protected  function getExcel($fileName,$headArr,$data){

//导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入    import("Org.Util.PHPExcel");    import("Org.Util.PHPExcel.Writer.Excel5");    import("Org.Util.PHPExcel.IOFactory.php");

$date = date("Y_m_d",time());    $fileName .= "_{$date}.xls";

//创建PHPExcel对象,注意,不能少了\    $objPHPExcel = new \PHPExcel();    $objProps = $objPHPExcel->getProperties();

//设置表头 超过26列    $key = 0;    foreach($headArr as $v){        //注意,不能少了。将列数字转换为字母\        $colum = \PHPExcel_Cell::stringFromColumnIndex($key);        $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.‘1‘, $v);        $key += 1;    }

//设置表头    $column = 2; //从第二行写入数据 第一行是表头    $objActSheet = $objPHPExcel->getActiveSheet();

foreach($data as $key => $rows){ //行写入        $span = 0;        foreach($rows as $keyName=>$value){// 列写入            $j = \PHPExcel_Cell::stringFromColumnIndex($span);            $objActSheet->setCellValue($j.$column, $value);            $span++;        }        $column++;    }

$fileName = iconv("utf-8", "gb2312", $fileName);

//重命名表    //$objPHPExcel->getActiveSheet()->setTitle(‘test‘);    //设置活动单指数到第一个表,所以Excel打开这是第一个表    $objPHPExcel->setActiveSheetIndex(0);    ob_end_clean();//清除缓冲区,避免乱码    header(‘Content-Type: application/vnd.ms-excel‘);    header("Content-Disposition: attachment;filename=\"$fileName\"");    header(‘Cache-Control: max-age=0‘);    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5‘);    $objWriter->save(‘php://output‘); //文件通过浏览器下载    exit;}

ok 遇到其问题 或者 出现其他bug可以联系我   群84451248  加群的话 请备注 博客园大白驴 否则无法通过。
时间: 2024-10-08 18:14:05

phpexcel导出excel的数据超过26列怎么办 Invalid cell coordinate [1(THINKPHP3.2中开发遇到的)的相关文章

phpexcel导出超过26列解决方案

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

PHPExcel导出excel

如果导出中文时出现乱码,可以尝试将字符串转换成gb2312,例如下面就把$yourStr从utf-8转换成了gb2312: $yourStr = mb_convert_encoding("gb2312", "UTF-8", $yourStr); 总结 php导出Excel php导入Excel PhpExcel使用说明 PhpExcel使用手册 1:第一推荐无比风骚的PHPExcel,官方网站: http://www.codeplex.com/PHPExcel 导入

PHPExcel导出Excel文件

error_reporting(0); require_once 'phpexcel/PHPExcel.php'; require_once 'phpexcel/PHPExcel/IOFactory.php'; $objPHPExcel = new PHPExcel(); $objPHPExcel->getProperties()->setCreator("BillHong") ->setLastModifiedBy("BillHong")//创建

phpExcel导出excel加超级链接的实例代码[转]

phpexcel实现的导出excel文件的代码,且可以在excel文件中加入超级链接. 说明:PHPExcel的开发包Tests目录有详细使用实例.以下代码支持中文,注意文件编码,文件保存为utf-8. 完整代码: 代码示例: <?php//写excel //Include class require_once(‘Classes/PHPExcel.php’); require_once(‘Classes/PHPExcel/Writer/Excel2007.php’); $objPHPExcel

关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法

原文:关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法 上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认数字太长会转化为科学计数法,处理起来很简单,我们在导出时把数字转为字符串,Excel就不会识别为数字了,也就不会显示为科学计数方式. 我的处理方式是在变量后面加个空格,简单方便. $usercode .= ' '; $

yii2 数据导出 excel导出以及导出数据时列超过26列时解决办法

作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension? 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利. 先概括下我们接下来要说的大致内容: 数据列表页面导出excel数据, 1.可以根据GridView的filter进行搜索数据并导出 2.可以自行扩展数据导出的时间直接导出数据 //先来看controller层,接收GridView参数并做拼接处理 php c

使用PHPExcel导出excel备忘录

导入导出excel使用PHPexcel类很简单快捷,记录下该类常用的操作,以备不时之需. <?php require_once ROOT_PATH . 'includes/phpexcel/Classes/PHPExcel.php';//引入phpexcel类库 $objPHPExcel = new PHPExcel();//实例化phpexcel // Set properties 设置导出的文档信息 $objPHPExcel->getProperties()->setCreator(

java 导出excel表格数据

本篇文章基于java把数据库中的数据以Excel的方式导出,欢迎各位大神吐槽: 1.基于maven jar包引入如下: 1 <dependency> 2 <groupId>net.sourceforge.jexcelapi</groupId> 3 <artifactId>jxl</artifactId> 4 <version>2.6.12</version> 5 </dependency> 2.首先创建数据库对

java中使用poi导出excel表格数据并且可以手动修改导出路径

在我们开发项目中,很多时候会提出这样的需求:将前端的某某数据以excel表格导出,今天就给大家写一个简单的模板. 这里我们选择使用poi导出excel: 第一步:导入需要的jar包到 lib 文件夹下 jar包下载路径:http://download.csdn.net/download/pumpkin09/7077011 第二步:添加poi导出工具类 1 package com.yjd.admin.util; 2 3 import java.io.IOException; 4 import ja