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. mvn项目压缩打包

    通常情况下,maven打包结果为jar或war包.如果需要一并打包配置文件等参数,通过resources配置指定需要打包的文件参数,如下示例: <project> ... <!-- ...

  2. LINQ to SQL 中 Concat、Union、Intersect、Except 方法的使用

    Ø  前言 LINQ to SQL 中需要对两个或多个数据集进行操作,比如:合并.取交集等,主要使用下面四个方法,这四个方法都是 System.Linq.IQueryable<out T> ...

  3. JS创建对象之工厂模式

    function createPerson(name, age, job) { var o = new Object(); o.name = name; o.age = age; o.job = jo ...

  4. Commons Lang 介绍

    https://commons.apache.org/proper/commons-lang/ https://commons.apache.org/proper/commons-lang/javad ...

  5. 【bzoj 2049】Cave 洞穴勘测

    Description 辉辉热衷于洞穴勘测.某天,他按照地图来到了一片被标记为JSZX的洞穴群地区.经过初步勘测,辉辉发现这片区域由n个洞穴(分别编号为1到n)以及若干通道组成,并且每条通道连接了恰好 ...

  6. web 安全知识点

    XSS 新手指南:DVWA-1.9全级别教程(完结篇,附实例)之XSS https://www.jianshu.com/p/303206ae2471 https://www.netsparker.co ...

  7. Linux常用功能及实现命令

    1.设置node.npm.appium等命令全局访问 因为 /opt/node/bin这个目录是不在环境变量中的,所以只能到该目录下才能执行node命令,如果在任意目录下执行node命令的话 ,必须通 ...

  8. 用SQLAlchemy创建一对多,多对多关系表

    多对多关系表的创建: 如果建立好多对多关系后,我们就可以通过关系名进行循环查找,比如laowang = Teacher.query.filter(Teacher.name=='laowang').fi ...

  9. python中的join.set ,copy以及删除注意事项:

    1 ,join  :  将对象以字符串的方式拼接成一个整体 for E :  li = ["李白", "是", "诗仙"]    s = & ...

  10. MD5加密文件

    package cn.net.comsys.ut.util; import java.io.File;import java.io.FileInputStream;import java.io.IOE ...