http://blog.csdn.net/dl425134845/article/details/46650961

以下是解决方案函数

  1. /**
  2. *   方法名:    getExcel
  3. *   作用  :将数据导出excel表格
  4. *   @date   2015/03/26
  5. *   @author dingling
  6. *   @param1 文件名
  7. *   @param2 字段名
  8. *   @param3 数据
  9. *   @return excel文件
  10. */
  11. function getExcel($fileName,$headArr,$data){
  12. //对数据进行检验
  13. if(empty($data) || !is_array($data)){
  14. die("数据必须为数组");
  15. }
  16. //检查文件名
  17. if(empty($fileName)){
  18. exit;
  19. }
  20. //组装文件名
  21. $date = date("Y_m_d",time());
  22. $fileName .= "_{$date}.xls";
  23. error_reporting(E_ALL);
  24. ini_set('display_errors', TRUE);
  25. ini_set('display_startup_errors', TRUE);
  26. date_default_timezone_set('PRC');
  27. if (PHP_SAPI == 'cli')
  28. die('只能通过浏览器运行');
  29. //导入PHPExcel类库,因为PHPExcel没有用命名空间,只能inport导入
  30. import("Org.Util.PHPExcel");
  31. import("Org.Util.PHPExcel.Writer.Excel5");
  32. import("Org.Util.PHPExcel.IOFactory.php");
  33. //创建PHPExcel对象,注意,不能少了\
  34. $objPHPExcel = new \PHPExcel();
  35. $objProps = $objPHPExcel->getProperties();
  36. //设置表头
  37. <span style="color:#FF0000;">$key = ord("A");//A--65
  38. $key2 = ord("@");//@--64</span>
  39. foreach($headArr as $v){
  40. <span style="color:#FF0000;">if($key>ord("Z")){
  41. $key2 += 1;
  42. $key = ord("A");
  43. $colum = chr($key2).chr($key);//超过26个字母时才会启用  dingling 20150626
  44. }else{
  45. if($key2>=ord("A")){
  46. $colum = chr($key2).chr($key);
  47. }else{
  48. $colum = chr($key);
  49. }
  50. }</span>
  51. $objPHPExcel->setActiveSheetIndex(0) ->setCellValue($colum.'1', L($v['COMMENT']));
  52. $key += 1;
  53. }
  54. $column = 2;
  55. $objActSheet = $objPHPExcel->getActiveSheet();
  56. foreach($data as $key => $rows){ //行写入
  57. <span style="color:#FF0000;">$span = ord("A");
  58. $span2 = ord("@");</span>
  59. foreach($headArr as $k=>$v){
  60. <span style="color:#FF0000;">if($span>ord("Z")){
  61. $span2 += 1;
  62. $span = ord("A");
  63. $j = chr($span2).chr($span);//超过26个字母时才会启用  dingling 20150626
  64. }else{
  65. if($span2>=ord("A")){
  66. $j = chr($span2).chr($span);
  67. }else{
  68. $j = chr($span);
  69. }
  70. }</span>
  71. //$j = chr($span);
  72. $objActSheet->setCellValue($j.$column, strip_tags($rows[$v['FIELD']]));
  73. $span++;
  74. }
  75. $column++;
  76. }
  77. $fileName = iconv("utf-8", "gb2312", $fileName);
  78. // $objPHPExcel->getActiveSheet()->setTitle('CNLINK');// 重命名表
  79. $objPHPExcel->setActiveSheetIndex(0);// 设置活动单指数到第一个表,所以Excel打开这是第一个表
  80. // Redirect output to a client’s web browser (Excel5)
  81. header('Content-Type: application/vnd.ms-excel');
  82. header("Content-Disposition: attachment;filename=\"$fileName\"");
  83. header('Cache-Control: max-age=0');
  84. // If you're serving to IE 9, then the following may be needed
  85. header('Cache-Control: max-age=1');
  86. // If you're serving to IE over SSL, then the following may be needed
  87. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  88. header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
  89. header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
  90. header ('Pragma: public'); // HTTP/1.0
  91. $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  92. // $objWriter->save('1.xls');
  93. // echo str_replace('.php', '.xls', __FILE__);
  94. $objWriter->save('php://output'); //文件通过浏览器下载
  95. exit;
  96. }

红色部分是解决问题的关键

PHPExcel导出数据时字段超过26列出错Invalid cell coordinate [1的更多相关文章

  1. phpexcel导出超过26列解决方案

    原文:phpexcel导出超过26列解决方案 将列的数字序号转成字母使用,代码如下:  PHPExcel_Cell::stringFromColumnIndex($i); // 从o,1,2,3,.. ...

  2. --mysql 导出数据时, 数字类型的列如果位数过长,变为科学计数法问题

    --mysql 导出数据时, 数字类型的列如果位数过长,变为科学计数法问题在字段前加上\t即可select concat('\t',a.IDCARD_NO) from xxx a

  3. ThinkPHP 整合 PHPExcel ,数据导出功能实现,解决Invalid cell coordinate

    PHPExcel想必大家都不陌生,是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格 本次只做数据导出功能的 ...

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

    上次在开发一个项目时,用到PHPExcel导出数据,其中有导出身份证等长串数字时导出的Excel中显示为科学计数方式. 这种显示很不人性化而且量多了修改起来也很麻烦. 这是因为Excel处理数字里默认 ...

  5. php利用phpexcel导出数据

    php中利用phpexcel导出数据的实现代码.对phpexcel类库不熟悉的朋友,可以阅读下<phpexcel中文帮助手册>中的内容,具体实例大家可以phpexcel快速开发指南中的相关 ...

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

    作者:白狼 出处:http://www.manks.top/article/yii2_excel_extension​ 本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给 ...

  7. SQL Server2000导出数据时包含主键、字段默认值、描述等信息

    时经常用SQL Server2000自带的导出数据向导将数据从一台数据库服务器导出到另一台数据库服务器: 结果数据导出了,但表的主键.字段默认值.描述等信息却未能导出,一直没想出什么方法,今天又尝试了 ...

  8. Thinkphp解决phpExcel导出数据量大导致内存溢出

    工作需要导出几万的数据量.操作比较频繁.之前数据在七八千是数据导出很慢.phpExcel是方便但是性能一般.现在改为使用csv导出数据:可以缓解内存压力,一次导出两三万是没问题的.当然服务器内存给力, ...

  9. phpexcel如何读和写大于26列的excel

    主要运用到PHPExcel_Cell类的两个方法 1读取excel大于26列时. PHPExcel_Cell::columnIndexFromString($highestColumm)://由列名转 ...

随机推荐

  1. asp.net网页注释

    asp.net页面上有一个asp控件,结果 使用<!-- -->注释不起作用,最后发现使用<%-- --%>注释可以.

  2. SpringBoot入门笔记(四)、通常Mybatis项目目录结构

    1.工程启动类(AppConfig.java) 2.实体类(domain) 3.数据访问层(dao) 4.数据服务层(service) 5.前端控制器(controller) 6.工具类(util) ...

  3. JS基础题

    1.三目运算符(三元条件语句)的使用方法? 条件表达式?true表达式:false表达式 2.JS数据中哪些属于引用类型? 数组.对象 引用类型变量,变量名所储存的不是变量值,而是变量所在的地址. 3 ...

  4. c# c/s 框架读取的配置文件时是app.exe.config

    c# c/s 框架读取的配置文件时是app.exe.config, 一般在bin中间中俄debug中或者Release中

  5. flash 概要分析器

    这个东东 调试用.会每毫秒一次记录正在运行的函数 及相关数据    只在调试版flash player才能用. startSampling  开始记录 getSamples  获取记录 Sample ...

  6. Understanding a project which include NodeJS, Webpack, Vue

    公司有一个web 项目是用 Vue 写的, 前段时间负责这个tool的人离职了没有人维护,其他人又很忙,我就去看了一下以便以后能加一些新功能在上面 没有接触过Vue, 这些理解了一下关系做一些学习记录 ...

  7. 第25月第5天 Hands-on Machine Learning with Scikit-Learn and TensorFlow

    1.apachecn视频(机器学习实战) https://github.com/apachecn/AiLearning https://space.bilibili.com/97678687/#/ch ...

  8. 什么是webservice?

    webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互. 这里具体举个例子,比如在Windows Server服务器上有个C#.Net开发的应用A,在Linux上有 ...

  9. ssm mysql 新增数据返回id

    描述: 在ssm项目中,新增一条数据,返回该数据的数据库id(主键) 实现方法: 1.xml 增加  useGeneratedKeys="true" keyProperty=&qu ...

  10. NPOI2.2.0.0实例详解(九)—设置EXCEL单元格【时间格式】

    原文:http://blog.csdn.net/xxs77ch/article/details/50245391 using System; using System.Collections.Gene ...