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)://由列名转 ...
随机推荐
- 032、学容器必须懂bridge网络(2019-02-19 周二)
参考https://www.cnblogs.com/CloudMan6/p/7066851.html docker安装时会创建一个名为 docker0 的linuxbridge.如果不指定 --n ...
- 服务器部署全程记录(centos6.5)
1.安装nginx 上传安装包:put E:\yz_index\installPackage\nginx-1.14.0.tar.gz 解压:tar zxvf nginx-1.14.0.tar.gz 切 ...
- 细说tomcat之session持久化探秘
业务场景:通常,我们会在会话级别存放一些参数,期望在session生命周期内,可以一直取得保存在session中的指定数据:而只要session过期或者失效,则需要执行重新登录等操作.但是!我们对于这 ...
- jsp使用cookie自动登录
Login.jsp <%@ page language="java" import="java.util.*" pageEncoding="ut ...
- Vertica系列:性能优化
Vertica 性能非常好, 平时基本不会碰到性能问题, 即使碰到, 优化也很容易, 而且效果往往会很好. ======================优化工具==================== ...
- 魔改版BBR
魔改版bbr加速: wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSp ...
- C# UserControl集合属性使用
在UserControl中,定义集合属性时,如果直接使用List是检测不到在属性框中的列表修改变化的,可以通过 ObservableCollection() 实现 1.定义类 [Serializabl ...
- [译]Nuget.Server
原文 NuGet.Server是一个包,可用于使一个ASP.NET应用host一个package feed . 使用VS创建一个新的空WEB应用,添加Nuget.Server包. 配置应用的Packa ...
- python DB-API
python为数据库访问开发了统一的API(Application Programming Interface,应用程序编程接口):DB-API. MySQL的实现叫做MySQLdb,Oracle实现 ...
- Eclipse下生成/编辑Java类图或时序图(UML)[转载]
一 引用文章 1.[eclipse下生成Java类图和时序图,生成UML图(更完整版)](https://blog.csdn.net/guomainet309/article/details/5302 ...