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. bash 刷题leetcode

    题目一: 给定一个文本文件 file.txt,请只打印这个文件中的第十行. 示例: 假设 file.txt 有如下内容: Line 1 Line 2 Line 3 Line 4 Line 5 Line ...

  2. Win10升级.NET Framework 3.5或2.0遇到错误0x800f081f怎么办

    为了让win10系统更好地运行游戏,很多玩家都会在电脑中安装.NET Framework 3.5或.NET Framework 2.0.不过,部分用户在更新升级.NET Framework 3.5和2 ...

  3. 细说tomcat之集群session共享方案

    1. Tomcat Cluster官网:http://tomcat.apache.org/tomcat-7.0-doc/cluster-howto.htmlTomcat原生支持的集群方案,通过组播消息 ...

  4. 另一种的SQL注入和DNS结合的技巧

    这个技巧有些另类,当时某业界大佬提点了一下.当时真的真的没有理解到那种程度,现在可能也是没有理解到,但是我会努力. 本文章是理解于:http://netsecurity.51cto.com/art/2 ...

  5. html5 area实例

    真实页面效果:就是一张图 html代码: <!DOCTYPE HTML> <html> <style> body{ padding:0px; margin:0px; ...

  6. Centos7下安装小米SQL优化工具SOAR

    1 下载源码包 赋予权限 wget https://github.com/XiaoMi/soar/releases/download/0.9.0/soar.linux-amd64 -O soar ch ...

  7. Python 16 html 基础 jQuery & Javascript研究

    基础内容 DOM操作 javascript探讨 JQuery初识 DOM innerText  ==>获取仅文本 innerHtml  ==>获取全部内容 <div id=" ...

  8. 🍓 JRoll、React滑动删除 🍓

    import React, { Component } from 'react'; import '../src/css/reset.css'; import '../src/css/delete.c ...

  9. Django学习手册 - CURD组件

    CURD CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD.作用是用于处理数据的基本原子操作. 它代表创建(Create).更新(Update).读取(Retriev ...

  10. Django学习手册 - ORM数据类型

    DOM 字段/参数 配置格式: Module.字段(参数) 常用的字段归纳: 数字 models.AutoField() 自增列(int),必须设置为主键 models.IntegerField() ...