PHPExcel导出数据时字段超过26列出错Invalid cell coordinate [1
http://blog.csdn.net/dl425134845/article/details/46650961
以下是解决方案函数
- /**
- * 方法名: getExcel
- * 作用 :将数据导出excel表格
- * @date 2015/03/26
- * @author dingling
- * @param1 文件名
- * @param2 字段名
- * @param3 数据
- * @return excel文件
- */
- function getExcel($fileName,$headArr,$data){
- //对数据进行检验
- if(empty($data) || !is_array($data)){
- die("数据必须为数组");
- }
- //检查文件名
- if(empty($fileName)){
- exit;
- }
- //组装文件名
- $date = date("Y_m_d",time());
- $fileName .= "_{$date}.xls";
- error_reporting(E_ALL);
- ini_set('display_errors', TRUE);
- ini_set('display_startup_errors', TRUE);
- date_default_timezone_set('PRC');
- if (PHP_SAPI == 'cli')
- die('只能通过浏览器运行');
- //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
- import("Org.Util.PHPExcel");
- import("Org.Util.PHPExcel.Writer.Excel5");
- import("Org.Util.PHPExcel.IOFactory.php");
- //创建PHPExcel对象,注意,不能少了\
- $objPHPExcel = new \PHPExcel();
- $objProps = $objPHPExcel->getProperties();
- //设置表头
- <span style="color:#FF0000;">$key = ord("A");//A--65
- $key2 = ord("@");//@--64</span>
- foreach($headArr as $v){
- <span style="color:#FF0000;">if($key>ord("Z")){
- $key2 += 1;
- $key = ord("A");
- $colum = chr($key2).chr($key);//超过26个字母时才会启用 dingling 20150626
- }else{
- if($key2>=ord("A")){
- $colum = chr($key2).chr($key);
- }else{
- $colum = chr($key);
- }
- }</span>
- $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', L($v['COMMENT']));
- $key += 1;
- }
- $column = 2;
- $objActSheet = $objPHPExcel->getActiveSheet();
- foreach($data as $key => $rows){ //行写入
- <span style="color:#FF0000;">$span = ord("A");
- $span2 = ord("@");</span>
- foreach($headArr as $k=>$v){
- <span style="color:#FF0000;">if($span>ord("Z")){
- $span2 += 1;
- $span = ord("A");
- $j = chr($span2).chr($span);//超过26个字母时才会启用 dingling 20150626
- }else{
- if($span2>=ord("A")){
- $j = chr($span2).chr($span);
- }else{
- $j = chr($span);
- }
- }</span>
- //$j = chr($span);
- $objActSheet->setCellValue($j.$column, strip_tags($rows[$v['FIELD']]));
- $span++;
- }
- $column++;
- }
- $fileName = iconv("utf-8", "gb2312", $fileName);
- // $objPHPExcel->getActiveSheet()->setTitle('CNLINK');// 重命名表
- $objPHPExcel->setActiveSheetIndex(0);// 设置活动单指数到第一个表,所以Excel打开这是第一个表
- // Redirect output to a client’s web browser (Excel5)
- header('Content-Type: application/vnd.ms-excel');
- header("Content-Disposition: attachment;filename=\"$fileName\"");
- header('Cache-Control: max-age=0');
- // If you're serving to IE 9, then the following may be needed
- header('Cache-Control: max-age=1');
- // If you're serving to IE over SSL, then the following may be needed
- header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
- header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
- header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
- header ('Pragma: public'); // HTTP/1.0
- $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
- // $objWriter->save('1.xls');
- // echo str_replace('.php', '.xls', __FILE__);
- $objWriter->save('php://output'); //文件通过浏览器下载
- exit;
- }
红色部分是解决问题的关键
PHPExcel导出数据时字段超过26列出错Invalid cell coordinate [1的更多相关文章
- phpexcel导出超过26列解决方案
原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下: PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,.. ...
- --mysql 导出数据时, 数字类型的列如果位数过长,变为科学计数法问题
--mysql 导出数据时, 数字类型的列如果位数过长,变为科学计数法问题在字段前加上\t即可select concat('\t',a.IDCARD_NO) from xxx a
- ThinkPHP 整合 PHPExcel ,数据导出功能实现,解决Invalid cell coordinate
PHPExcel想必大家都不陌生,是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格 本次只做数据导出功能的 ...
- 关于PHPExcel导出Excel时身份证,数字会导出为科学计数的处理方法
上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认 ...
- php利用phpexcel导出数据
php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关 ...
- yii2 数据导出 excel导出以及导出数据时列超过26列时解决办法
作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给 ...
- SQL Server2000导出数据时包含主键、字段默认值、描述等信息
时经常用SQL Server2000自带的导出数据向导将数据从一台数据库服务器导出到另一台数据库服务器: 结果数据导出了,但表的主键.字段默认值.描述等信息却未能导出,一直没想出什么方法,今天又尝试了 ...
- Thinkphp解决phpExcel导出数据量大导致内存溢出
工作需要导出几万的数据量.操作比较频繁.之前数据在七八千是数据导出很慢.phpExcel是方便但是性能一般.现在改为使用csv导出数据:可以缓解内存压力,一次导出两三万是没问题的.当然服务器内存给力, ...
- phpexcel如何读和写大于26列的excel
主要运用到PHPExcel_Cell类的两个方法 1读取excel大于26列时. PHPExcel_Cell::columnIndexFromString($highestColumm)://由列名转 ...
随机推荐
- jsp查询修改
也是只帖代码....不讲解. 1.search.jsp <%@ page language="java" import="java.util.*" pag ...
- 保存页面数据的场所----Hidden、ViewState、ControlState
1.使用隐藏域Session.Application和Cache都是保存在服务器内存中的.一般来说我们是无权访问客户端的机器,把数据直接保存在客户端的(Cookie是一个例外,不过Cookie只能保存 ...
- C# 获取程序运行时路径
Ø 前言 开发中,很多时候都需要获取程序运行时路径,比如:反射.文件操作等..NET Framework 已经封装了这些功能,可以很方便的使用. C# 中有很多类都可以获取程序运行时路径,我们没必要 ...
- shell 命令使用笔记
1.提取字符串中以.ddd结尾的ddd值 result=$(echo "chip86.500" | grep -Eo '\.[0-9]{1,}' | grep -Eo '[0-9] ...
- Microsoft Windows .Reg File Dialog Box Message Spoofing 0day
Microsoft Windows .Reg文件对话框消息欺骗 0day 概述 扩展名为.reg的文件是Windows注册表中使用的注册文件.这些文件可以包含hives.密钥和值..reg文件可以在文 ...
- IBM X3650 M5服务器RAID阵列设置
生产环境中的raid配置说明: 一. 开机后,注意引导界面,按F1键进入BIOS进行设置 二. 进入BIOS后,选择system setting--storage ,进入磁盘阵列配置界面,可以看到M5 ...
- ELK平台搭建(上)
一.目的 为指导在Centos6.8系统下搭建标准ELK平台的工作. 二.定义 Elasticsearch Logstash Kibana结合Redis协同工作. 三.适用范围 适用于运营维护组运维工 ...
- Liunx/RHEL6.5 Oracle11 安装记录
1.创建用户组 groupadd oinstall #创建用户组oinstall groupadd dba #创建用户组dba useradd -g oinstall -g dba -m oracle ...
- Spring中@Transactional(rollbackFor = Exception.class)的作用
Spring中的@Transactional(rollbackFor = Exception.class)事务处理,当你的方法中抛出异常时,它会将 事务回滚,数据库中的数据将不会改变,也就是回到进入此 ...
- Windows 7 SP1无人值守自动应答文件制作
使用U盘安装Windows系统时,很多人都会使用UltraISO工具来制作U盘启动盘,然后插入到电脑中加以安装.系统的安装过程中,需要一步一步手动选择或者输入配置,Windows是支持无人值守自动应答 ...