PHPExcel插件生成exel表:有的excel能打开,有的excel打不开

PHPExcel导出xls无法打开文件问题

在header之前,通过清除缓冲区:ob_end_clean();然后excel打开就正常了;亲测,有效。

PHPExcel插件生成exel表:有的excel能打开,有的excel打不开;

如图

PHPExcel插件生成exel表:有的excel能打开,有的excel打不开

修改代码,在导出的时候添加:ob_end_clean();

csharp;gutter:true; public function AntiExportData($list) { // error_reporting(0);</p> <pre><code> $objPHPExcel = new \PHPExcel(); //设置文件的一些属性,在xls文件——>属性——>详细信息里可以看到这些值,xml表格里是没有这些值的 $objPHPExcel ->getProperties() //获得文件属性对象,给下文提供设置资源 ->setCreator( "MaartenBalliauw") //设置文件的创建者 ->setLastModifiedBy( "MaartenBalliauw") //设置最后修改者 ->setTitle( "Office2007 XLSX Test Document" ) //设置标题 ->setSubject( "Office2007 XLSX Test Document" ) //设置主题 ->setDescription( "Test document for Office2007 XLSX, generated using PHP classes.") //设置备注 ->setKeywords( "office 2007 openxmlphp") //设置标记 ->setCategory( "Test resultfile"); //设置类别 // 位置aaa *为下文代码位置提供锚 //给表格添加数据 $objPHPExcel->setActiveSheetIndex(0)//表头的信息 ->setCellValue('A1', "ID") ->setCellValue('B1', "防伪码") ->setCellValue('C1', "序列号") ->setCellValue('D1', "可获得积分") ->setCellValue('E1', "状态") ->setCellValue('F1', "会员") ->setCellValue('G1', "查询时间") ->setCellValue('H1', "导入时间"); $i=2; foreach ($list as $key => $value) { if ($value['state'] == 1){ $state = '已查询'; }else{ $state = '未查询'; } if ($value['state'] == 1 && $value['nickname']){ $nickname = $value['nickname'].'(已兑换)'; }else{ $nickname = '未兑换'; } if ($value['export_time'] == null){ $export_time = ''; }else{ $export_time = date("Y-m-d H:i:s", $value['export_time']); } if ($value['import_time'] == null){ $import_time = ''; }else{ $import_time = date("Y-m-d H:i:s", $value['import_time']); } $objPHPExcel->getActiveSheet() // 设置第一个内置表(一个xls文件里可以有多个表)为活动的 ->setCellValue( 'A'.$i, $value['id'] ) //给表的单元格设置数据 ->setCellValue( 'B'.$i, $value['anti_counterfeiting_code'] ) //给表的单元格设置数据 ->setCellValue( 'C'.$i, $value['serial_number'] ) ->setCellValue( 'D'.$i, $value['integral']) ->setCellValue( 'E'.$i, $state ) ->setCellValue( 'F'.$i, $nickname ) ->setCellValue( 'G'.$i, $export_time) //布尔型 ->setCellValue( 'H'.$i, $import_time); $i++; } //公式 //得到当前活动的表,注意下文教程中会经常用到$objActSheet $objActSheet =$objPHPExcel->getActiveSheet(); // 位置bbb *为下文代码位置提供锚 //给当前活动的表设置名称 $objActSheet->setTitle('Simple2222'); //代码还没有结束,可以复制下面的代码来决定我们将要做什么 ob_end_clean(); //1,直接生成一个文件 $objWriter =\PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $objWriter->save('myexchel.xlsx'); header('Content-Type:application/vnd.ms-excel'); header('Content-Disposition:attachment;filename="防伪数据.xls"'); header('Cache-Control:max-age=0'); $objWriter =\PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); return $this->render($this->actionID); } </code></pre> <p>

亲测,有效。

Original: https://www.cnblogs.com/achengmu/p/16460308.html
Author: 穆晟铭
Title: PHPExcel插件生成exel表:有的excel能打开,有的excel打不开

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551166/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Css3图片阴影效果_Css3相册阴影效果(二)

    一、Css3图片阴影效果_Css3相册阴影效果(二) html代码: DOCTYPE html> <html lang="en"> <h…

    技术杂谈 2023年6月1日
    083
  • cocos 场景制作流程

    前面的话 本文将详细介绍 cocos 场景制作流程 节点和组件 Cocos Creator 的工作流程是以组件式开发为核心的,组件式架构也称作组件-实体系统,简单的说,就是以组合而…

    技术杂谈 2023年5月30日
    084
  • HTTP长连接和短链接代理与网关

    长连接和短链接 代理与网关 HTTP/)服务器端网关:网关与客户端使用HTTP协议通信,使用其他协议与服务端通信 (/HTTP)客户端网关:网关与客户端使用其他协议通信,使用HTT…

    技术杂谈 2023年7月24日
    062
  • 8089汇编 标志寄存器

    8089汇编 标志寄存器 在8086CPU的指令集中,有的指令的执行是影响标志寄存器的,比如:add、sub、mul、div、inc、or、and等,它们大都是运算指令,进行逻辑或…

    技术杂谈 2023年6月1日
    088
  • 技能篇:linux服务性能问题排查及jvm调优思路

    只要业务逻辑代码写正确,处理好业务状态在多线程的并发问题,很少会有调优方面的需求。最多就是在性能监控平台发现某些接口的调用耗时偏高,然后再发现某一SQL或第三方接口执行超时之类的。…

    技术杂谈 2023年7月25日
    070
  • 异或的4种堪称神奇的运用场景

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处。 众所周知,编程语言一般都内置了3种位运算符 &(AND)、 |(OR)、 ~(NOT),用来…

    技术杂谈 2023年7月25日
    087
  • jQuery 3.0 的 setter/getter 模式

    jQuery 的 setter/getter 共用一个函数,通过是否传参来表明它是何种意义。简单说传参它是 setter,不传它是 getter。 一个函数具有多种意义在编程语言中…

    技术杂谈 2023年6月1日
    080
  • 快速模幂算法

    快速模幂算法就是将指数变成二进制数来计算,每次按照底数的二进制次方进行计算,因为底数相乘指数相加,又模和乘可以相互变化,所以最后可以一边模一边乘,最后得出的结果还是正确的。 例如:…

    技术杂谈 2023年6月21日
    089
  • 阿里云有奖体验:块存储快速入门

    实验简介 场景将提供一台配置了CentOS 7.7版本的ECS实例(云服务器)和两块高效云盘的数据盘。通过本教程的操作,您可以通过阿里云控制台和Linux操作系统,快速入门块存储。…

    技术杂谈 2023年7月11日
    057
  • 网络流,二分图与图的匹配

    CHANGE LOG 2021.12.5:更换模板代码。新增二分图部分。 2022.1.11:重构网络流部分。新增网络流的应用与模型。 2022.1.1.13:新增上下界网络流部分…

    技术杂谈 2023年6月21日
    0107
  • CentOS 7.6 Mysql、RabbitMQ等软件rpm安装方式及配置

    以下都基于centos 7.6 1 防火墙相关 开启防火墙 systemctl start firewalld 开启指定端口 含义 –zone 作用域 -add-port=637…

    技术杂谈 2023年7月24日
    081
  • Java String Pool–String s = new String(“a”) 到底创建了几个对象?

    本篇重点(tips): String Pool 是以Java 中 String 对象是不可变的这一特性为基础的 String Pool是Heap(堆)中的一块特殊空间(JDK 1….

    技术杂谈 2023年6月21日
    070
  • 国运之争 功在当下

    国运之争 中华复兴 郭继承讲的好 国运之争 系于当代,下一代 树报国志 成栋梁材 十年累积 三年中考 三年高考 四年大学 道德在内修心思价值观念 仁爱在外制态度情绪言行 业果在平时…

    技术杂谈 2023年5月31日
    069
  • 聊一聊责任链模式

    将一堆”事情”串联在一起,有序执行,就叫责任链 一、概述 责任链模式(Chain of Responsibility Pattern)是将链中每一个节点看作…

    技术杂谈 2023年7月23日
    053
  • VS Code vetur 插件离线下载安装

    https://marketplace.visualstudio.com/vscode 其中需要下载的是: VeturPine WuVue tooling for VS Code …

    技术杂谈 2023年6月1日
    073
  • Golang并发编程——goroutine、channel、sync

    并发与并行 并发和并行是有区别的,并发不等于并行。 两个或多个事件在同一时间不同时间间隔发生。对应在Go中,就是指多个 goroutine 在单个CPU上的交替运行。 两个或者多个…

    技术杂谈 2023年7月11日
    053
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球