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. Spring事物的属性

    链接:https://www.nowcoder.com/questionTerminal/1c65d30e47fb4f59a5e5af728218cac4?orderByHotValue=2& ...

  2. tomcat自动重新加载应用

    前言 当应用配置文件发生变化时,无需重启tomcat,可以使tomcat重新加载应用. 场景 假设存在一个J2EE应用A,对应war文件名称为A.war,部署在tomcat的webapps目录下,即: ...

  3. Chrome 浏览器快捷键

    Ø  前言 记录下 Chrome 的快捷键,原文链接:http://www.cnblogs.com/mikalshao/archive/2010/11/03/1868568.html   1.   标 ...

  4. gethostbyname和gethostbyaddr

    一.gethostbyname函数原型 #include <netdb.h> struct hostent *gethostbyname(const char *ghostname); 返 ...

  5. 局域网内ping [局域网内ip地址]命令详解

    一.工作过程 主机A向主机B发送一个ICMP请求报文[类型字段为8,代码字段为0],若收到ICMP回复报 文[类型字段为0,代码字段为0]则说明主机B处于活动状态:若超时未收到回复,则可能是 因为(1 ...

  6. Javaweb学习笔记——(十七)——————JDBC的原理、四大核心类、四大参数、预编译、Dao模式、批处理、大数据、时间类型的转换

    JDBC入门 *导入jar包:驱动 *加载驱动类:Class.forName("类名"); *给出url.username.password,其中url背下来 *使用DriverM ...

  7. jquery判断点击鼠标左、中、右键事件

    注:1为鼠标左键.2为鼠标中键.3为鼠标右键$('#btn').mousedown(function(e){           if(3 == e.which){                al ...

  8. git 无法拉取新的远程分支

    我们常常会根据远程分支创建本地分支,命令如下 git checkout -b dev origin/dev 上面的命令我是想把远程分支 dev 拉到本地来,但是有时候没有用,提示远程分支不存在,我们需 ...

  9. 推荐使用string

    C-string(char* const char*) basic_string<>特化版本:string charwstring wchar_tu16string char16_tu32 ...

  10. vue通俗易懂的子组件向父组件传值

    不多BB直接上图: 如上图:为子组件绑定点击事件 如上图:send方法触发父组件绑定的事件 如上图:为父组件绑定触发事件@myEvent="aa" aa方法接受子组件传过来的值