使用PHPExcel导入导出excel格式文件
使用PHPExcel导入导出excel格式文件
作者:zccst
因为导出使用较多,以下是导出实现过程。
第一步,将PHPExcel的源码拷贝到项目的lib下
文件包含:PHPExcel.php 和 目录PHPExcel
源码见附件
注1:源码是zip格式,能在windows和linux通用。
注2:PHPExcel.zip是干净代码,能够直接引用。PHPExcel2.zip有svn记录,不适合直接引用。
第二步:在须要导出的handler页面中引用
1,在头部引入三个文件
- //环境变量设置(新增PHPExcel)
- set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . get_include_path());
- //注:在yii中,也能够直接Yii::import(“application.lib.PHPExcel.*”);
- //引入PHPExcel相关文件
- require_once "PHPExcel.php";
- require_once 'PHPExcel/IOFactory.php';
- require_once 'PHPExcel/Writer/Excel5.php';
2,将数据放入excel表格中
- //新建
- $resultPHPExcel = new PHPExcel();
- //设置參数
- //设值
- $resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度');
- $resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称');
- $resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量');
- $i = 2;
- foreach($data as $item){
- $resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']);
- $resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']);
- $resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);
- $i ++;
- }
3,设置导出的一些參数
版本号一:
- //设置导出文件名称
- $outputFileName = 'total.xls';
- $xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
- //ob_start(); ob_flush();
- header("Content-Type: application/force-download");
- header("Content-Type: application/octet-stream");
- header("Content-Type: application/download");
- header('Content-Disposition:inline;filename="'.$outputFileName.'"');
- header("Content-Transfer-Encoding: binary");
- header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
- header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- header("Pragma: no-cache");
- $xlsWriter->save( "php://output" );
版本号二:
- $writer = PHPExcel_IOFactory::createWriter($resultPHPExcel, 'Excel5');
- $writer->setTempDir(Yii::app()->basePath.'/runtime');
- $filename = "单.xls";
- header("Pragma: public");
- header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
- header("Content-Type: application/force-download");
- header('Content-Type: application/vnd.ms-excel');
- header('Content-Disposition: attachment;filename="' . $filename . '"');
- header('Cache-Control: max-age=0');
- $writer->save('php://output');
4,添加�附件(非必需)
- $objPHPExcel = new PHPExcel();
- $objReader = PHPExcel_IOFactory::createReader('Excel5');
- $objReader->setReadDataOnly(true);
- foreach($data2 as $item){
- $fp = dirname(__FILE__) . "/../../../" . $item['file_path'] ;
- $objPHPExcel = $objReader->load($fp);
- $objWorksheet = $objPHPExcel->getActiveSheet();
- $resultPHPExcel->addExternalSheet($objWorksheet);
- }
高级主题
1,excel5与excel2007差别
zipArchive.php
有非常多php(php.ini)不支持excel2007,所以建议使用excel5。
2,设置暂时文件位置
假设报暂时文件名称错,则更改暂时文件路径
xlsWriter.setDirName(Yii::app()->basePath.'/runtime');
3,设置excel单元格的格式
过滤
4,输出有错。
默认$xlsWriter->save( "php://output" );可能由于缓存不够大,而显示不完整,所以做个中转,方式例如以下:
- $finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls';
- $xlsWriter->save($finalFileName);
- echo file_get_contents($finalFileName); //file_get_contents() 函数把整个文件读入一个字符串中。和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。
使用PHPExcel导入导出excel格式文件的更多相关文章
- ASP.NET Core 导入导出Excel xlsx 文件
ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...
- Powerdesigner 导出Excel格式数据字典 导出Excel格式文件
版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...
- NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。
App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> ...
- phpcms 用phpexcel导入导出excel
html <form method="post" action="?m=content&c=content&a=public_add_excel&q ...
- phpexcel 导入导出excel表格
phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...
- 将页面中表格数据导出excel格式的文件(vue)
近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...
- ASP.NET Core导入导出Excel文件
ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...
- asp.net core web的导入导出excel功能
这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core ...
- 将Mysql的一张表导出至Excel格式文件
将Mysql的一张表导出至Excel格式文件 导出语句 进入mysql数据库,输入如下sql语句: select id, name, age from tablename into outfile ' ...
随机推荐
- C语言之可重入函数 && 不可重入函数
可重入函数 在 实时系统的设计中,经常会出现多个任务调用同一个函数的情况.如果这个函数不幸被设计成为不可重入的函数的话,那么不同任务调用这个函数时可能修改其他任 务调用这个函数的数据,从而导致不可预料 ...
- 关于C#中的抽象类、抽象方法和虚方法的探究
2016年的第一篇文章,容我先喷喷新年的情怀,..........,好了,喷的差不多了. 在面向对象中,我们需要对类进行横向和纵向的认识,不同的类有不同特色的成员,同时在不同类的继承中,子类获得父类的 ...
- CodeFirst解决数据迁移问题
CodeFirst解决数据迁移问题 分类: 数据库 设计模式 c#2013-04-24 17:56 137人阅读 评论(0) 收藏 举报 工程用的MVC + Entity Framework,根据Co ...
- 【socket.io研究】3.手机网页间聊天核心问题
前面我们已经说了服务器相关的一些内容,且又根据官网给出的一个例子写了一个可以聊天的小程序,但是这还远远不够呀,这只能算是应用前的准备工作.接下来,一起来考虑完善一个小的聊天程序吧. 首先,修改服务器的 ...
- ie6里png图片不透明
ie6下img图片或背景图片为png时,图片变成了一片黑色: 图中的jquery-timepicker的两个黑方块和img就是由此原因引用的.解决方法:由Drew Diller提供,对img.back ...
- JS模拟键盘事件 -- 原理及小例子
提问: 键盘默认事件,比如tab切换,alt+f4关闭,ctrl+t新建等,如果不想通过键盘而是一些按钮点击来触发这些功能,该咋办呢? 例子: 先以tab为例上一个小例子: <!DOCTYPE ...
- IE,火狐,谷歌浏览器下js判断滚动条是否已拉到页面最底部
E/FF/Chrome下document.documentElement和document.body的 scrollHeight/scrollTop/clientHeight 以及判断滚动条是否已拉到 ...
- python 中变量的命名规范
出自:http://www.diybl.com/course/3_program/python/20111130/563643.html 模块名: 小写字母,单词之间用_分割 ad_stats.py ...
- 为什么ELF文件的加载地址是0x8048000
在一个进程的虚拟地址空间中,ELF文件是从0x8048000这个地址开始加载的,为什么会是这个地址? 回答:用命令ld --verbose可以看到0x08048000,ld的默认脚本用这个地址作为EL ...
- ImageNet && 医学图像的识别
医学图像识别的问题 如果将CNN应用于医学图像,首要面对的问题是训练数据的缺乏.因为CNN的训练数据都需要有类别标号,这通常需要专家来手工标记.要是标记像ImageNet这样大规模的上百万张的训练图像 ...