php导出excel表格的原理

php导出excel表格的原理

在了解php是如何导出excel表格之前先了解一下excel的本质

excel分为两大版本excel2007(后缀.xlsx)、excel2003(后缀.xls),excel2007本质是xml的一个集合文档(压缩文档),excel2007文档的组成就是xml的集合压缩文档。excel2003:本质是一个二进制文件。

了解了excel,就下来介绍介绍php导出excel的原理:

对于excel2007来说,由于其本质为xml的集合文档,所以导出过程就是解析xml的过程;对于excel2003来说,由于其本质是二进制文件,所以,导出excel的过程首先会打开二进制文件,然后读取内部信息,并把内部信息转化为可以识别的内容的过程。

两种导出方式

立即学习“PHP免费学习笔记(深入)”;

方式一:使用PHPExcel类库

//引入PHPExcel库文件(路径根据自己情况)include './phpexcel/Classes/PHPExcel.php';$excel = new PHPExcel(); //创建对象$letter = array('A','B','C','D','E','F','F','G'); //Excel表格式,这里简略写了8列$tableheader = array('学号','姓名','性别','年龄','班级');//表头数组//填充表头信息for($i = 0;$i getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");}$data = array(array('1','小王','男','20','100'),array('2','小李','男','20','101'),array('3','小张','女','20','102'),array('4','小赵','女','20','103'));//填充表格信息for ($i = 2;$i $value) {$excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");$j++;}}$write = new PHPExcel_Writer_Excel5($excel);header("Pragma: public");header("Expires: 0");header("Cache-Control:must-revalidate, post-check=0, pre-check=0");header("Content-Type:application/force-download");header("Content-Type:application/vnd.ms-execl");header("Content-Type:application/octet-stream");header("Content-Type:application/download");;header('Content-Disposition:attachment;filename="testdata.xls"');header("Content-Transfer-Encoding:binary");$write->save('php://output');

登录后复制

方式二:简单的PHP导出excel,不适用任何外部类库文件

header("Content-type: text/csv");header("Content-Disposition: attachment; filename=reply.csv");header("Pragma: no-cache");header("Expires: 0");$output = fopen("php://output", "w");$header = array('学号','姓名','性别','年龄','班级');$converter = function($value) {return iconv('utf-8', 'gbk', $value);};$header = array_map($converter, $header);$list = array(array('1','小王','男','20','100'),array('2','小李','男','20','101'),array('3','小张','女','20','102'),array('4','小赵','女','20','103'));fputcsv($output, $header);foreach($list as $k => $v){$csvrow = array_map($converter, array($v[0],$v[1],$v[2],$v[3],$v[4],));fputcsv($output, $csvrow);}fclose($output);

登录后复制

以上内容仅供参考!

想了解更多相关内容请访问PHP中文网:PHP视频教程

以上就是php导出excel表格的原理的详细内容,更多请关注【创想鸟】其它相关文章!

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

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2157460.html

(0)
上一篇 2025年2月25日 06:59:45
下一篇 2025年2月23日 10:16:34

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • php中换行怎么写

    PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 unix系列用(推荐学习:PHP编程从入门到精通) 登录后复制 windows系列用 登录后复制 mac用  立即学习“PHP免费学习笔记(深入)”; 登录后复制 如: 登录…

    2025年2月25日
    200
  • php中间件是什么

    php中间件(middleware)是一个闭包,而且返回一个闭包。 中间件为过滤进入应用的HTTP请求提供了一套便利的机制,可以分为前置中间件和后置中间件。常用于验证用户是否经过认证,添加响应头(跨域),记录请求日志等。(推荐学习:PHP编…

    2025年2月25日
    200
  • php中美元符号是什么意思

    php中$符号是变量符号; 把$符号加上字符串,这个字符串就是一个变量名或对象名。 其实PHP采用的是C语言的语法,但是也有一些区别,$符号加上字符串,这就是一个变量名或对象名。 例如下面的代码:(推荐学习:PHP编程从入门到精通) 立即学…

    2025年2月25日
    200
  • php中魔术方法有什么用

    在面向对象编程中,php提供了一系列的魔术方法,这些魔术方法为编程提供了很多便利。php中的魔术方法通常以__(两个下划线)开始,并且不需要显示的调用而是由某种特定的条件出发。 __construct() 构造函数是目前为止最经常使用的函数…

    2025年2月25日
    200
  • PHP中什么是数组

    PHP 中的数组实际上是一个有序映射。映射是一种把 values 关联到 keys 的类型。 此类型在很多方面做了优化,因此可以把它当成真正的数组,或列表(向量),散列表(是映射的一种实现),字典,集合,栈,队列以及更多可能性。 由于数组元…

    2025年2月25日
    200
  • php namespacee原理

    1、什么是命名空间以及如何定义命名空间一般情况下,在一个php程序源代码文件或同一个请求中是不允许有两个以上相同名称的类名、常量名或者函数名的,这样的话,程序在运行的时候就会报错。但是,在很多实际情况下,我们是无法避免在同一个文件下有两个以…

    2025年2月25日
    200
  • 最流行的php建站程序是什么?

    要说最流行的php建站程序是什么?那肯定非wordpress莫属了。 WordPress拥有全球近三分之一的网站,从小型个人博客到索尼、时代公司、纽约邮报和NBC等大公司的复杂网站。WordPress只是网站构建器和内容管理系统之一,用户可…

    2025年2月25日
    200
  • 专科学习php还是java?

    对于初学者来说,建议大家先学习php,并非说php比java好,或者说java比不上php。客观的说,每一门编程语言的存在都有其意义,同时每一门编程语言都有其优缺点,有着适合自己的领域。那么为什么建议初学者去学习php而非java呢? PH…

    2025年2月25日
    200
  • 如何测试php运行环境

    初学者在配置完php的运行环境后就需要检查环境是否配置成功了,那么该如何检测php运行环境是否配置成功了呢? 其实检测php运行环境的步骤非常简单: 第一步:首先要确保已经配置php运行环境了。 第二步:在网站给目录(www)下新建info…

    2025年2月25日
    200
  • php中数据库怎么设计

    第一步一般都是创建数据库,除非是使用第三方的数据库服务。 当创建一个数据库的时候,会指定一个所有者来执行和新建语句。 通常,只有所有者(或超级用户)才有权对数据库中的对象进行任意操作。 如果想让其他用户使用,就必须赋予他们权限。(推荐学习:…

    2025年2月25日
    200

发表回复

登录后才能评论