php header函数导出excel表格

php header函数导出excel表格

推荐一个除了用PHPExcel导出表格之外的另外一种比较简单不需要引入类文件的表格导入方法——header()导出excel表格。

导出表格的步骤封装成了方法,以便于重复使用,代码如下:

 
 1 /**  2  * 导出数据为excel表格  3  *@param $data 一个二维数组,结构如同从数据库查出来的数组  4  *@param $title excel的第一行标题,一个数组,如果为空则没有标题  5  *@param $filename 下载的文件名  6  *@examlpe10 */ 11 function exportexcel($data=array(),$title=array(),$filename='report'){ 12 ob_end_clean(); 13 ob_start(); 14 header("Content-type:application/octet-stream"); 15 header("Accept-Ranges:bytes"); 16 header("Content-type:application/vnd.ms-excel"); 17 header("Content-Disposition:attachment;filename=".$filename.".xls"); 18 header("Pragma: no-cache"); 19 header("Expires: 0"); 20 //导出xls 开始 21 if (!empty($title)){ 22 foreach ($title as $k => $v) { 23 $title[$k]=iconv("UTF-8", "GB2312",$v); 24  } 25 $title= implode("\t", $title); 26 echo "$title\n"; 27  } 28 if (!empty($data)){ 29 foreach($data as $key=>$val){ 30 foreach ($val as $ck => $cv) { 31 $data[$key][$ck]=iconv("UTF-8", "GB2312", $cv); 32  } 33 $data[$key]=implode("\t", $data[$key]); 34  } 35 echo implode("\n",$data); 36  } 37 }
 

简单举个例子

1 $data =M ('User')-> select(); 2 $title = array('id','账户','密码','昵称'); 3 exportexcel($data,$title,'用户表!');

方法中的ob_end_clean()和ob_start()函数主要用来清除缓存和boom头防止产生乱码和格式错误。需要做导出操作的话,定义一个二维数组,和一个头部标题数组然后直接调用下载就行了。

本文属原创内容,为了尊重他人劳动,转载请注明本文地址:

http://www.cnblogs.com/luokakale/p/8352517.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112997.html原文链接:https://javaforall.net

(0)
上一篇 2021年10月26日 下午2:00
下一篇 2021年10月26日 下午3:00


相关推荐

  • yum安装与卸载软件常见命令「建议收藏」

    yum安装与卸载软件常见命令「建议收藏」1.使用yum安装和卸载软件,有个前提是yum安装的软件包都是rpm格式的。安装的命令是,yuminstall~,yum会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断;删除的命令是,yumremove~,同安装一样,yum也会查询数据库,给出解决依赖关…

    2022年6月12日
    47
  • 服务降级和服务熔断

    服务降级和服务熔断转载自:https://blog.csdn.net/llianlianpay/article/details/79768890 服务熔断  在微服务架构中,微服务之间的数据交互通过远程调用完成,微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,此时如果链路上某个微服务的调用响应时间过长或者不可用,那么对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,导致“雪崩…

    2022年6月7日
    34
  • python django环境搭建_Python 虚拟环境

    python django环境搭建_Python 虚拟环境python虚拟环境虚拟环境(virtualenvironment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西

    2022年7月28日
    12
  • v型密封圈的使用方法_橡胶密封圈标准

    v型密封圈的使用方法_橡胶密封圈标准充气密封圈到底能够密封什么呢?到底什么地方需要充气密封圈呢?我们带着问题来看下面的文章:一、充气密封圈定义简介:充气密封圈在自然状态下密封圈的可伸缩部分隐藏在凹槽内,当通过气嘴向密封圈充气时,密封圈因受内压力作用而发生变形,中间部分向外胀起,与另一密封面紧密接触,从而起到密封作用。需要解除密封状态时,通过气嘴排出密封圈内高压气体,膨胀部分受橡胶弹性作用自动回缩到凹槽内,与密封面脱离。二、充气密封圈…

    2022年10月3日
    5
  • 链表排序总结(全)(C++)[通俗易懂]

    链表排序总结(全)(C++)[通俗易懂]文章目录链表排序与数组排序的区别借助外部空间冒泡排序插入排序归并排序快速排序链表排序与数组排序的区别数组的排序几乎所有人都很熟悉了,常用的算法插入、冒泡、归并以及快排等都会或多或少依赖于数组可以在O(1)时间随机访问的特点。链表排序一般指单链表排序,链表是不支持随机访问的,需要访问后面的节点只能从表头顺序遍历,所以链表的排序是一个相对比较复杂的问题。那么怎样进行链表排序呢?借助外部空间既然数组排序简单,那可以借助数组进行排序:把链表中的值一次遍历导入数组(时间复杂度O(n))对数组进行排序

    2022年10月11日
    6
  • java基础代码详解

    java基础代码详解1 编写 java 源文件 认识 java 基本程序结构 创建一个文本文件 并重命名为 HelloWorld java 用记事本打开 编写一段 Java 代码如下面所示例子所示 ClassHelloWo java main 是程序的入口 所有程序都是从此处开始运行 Publicstatic String arge 在屏幕中打印输出 HelloWorld 语句 System out println HelloWorld 2 下面对每条语句

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号