使用PHPExcel导入导出excel格式文件 

作者:zccst 



因为导出使用较多,以下是导出实现过程。 



第一步,将PHPExcel的源码拷贝到项目的lib下 



文件包含:PHPExcel.php 和 目录PHPExcel 

源码见附件 



注1:源码是zip格式,能在windows和linux通用。 

注2:PHPExcel.zip是干净代码,能够直接引用。PHPExcel2.zip有svn记录,不适合直接引用。 



第二步:在须要导出的handler页面中引用 



1,在头部引入三个文件

  1. //环境变量设置(新增PHPExcel)
  2. set_include_path('.'. PATH_SEPARATOR . Yii::app()->basePath.'/lib/PHPExcel' . PATH_SEPARATOR . get_include_path());
  3. //注:在yii中,也能够直接Yii::import(“application.lib.PHPExcel.*”);
  4. //引入PHPExcel相关文件
  5. require_once "PHPExcel.php";
  6. require_once 'PHPExcel/IOFactory.php';
  7. require_once 'PHPExcel/Writer/Excel5.php';

2,将数据放入excel表格中

  1. //新建
  2. $resultPHPExcel = new PHPExcel();
  3. //设置參数
  4. //设值
  5. $resultPHPExcel->getActiveSheet()->setCellValue('A1', '季度');
  6. $resultPHPExcel->getActiveSheet()->setCellValue('B1', '名称');
  7. $resultPHPExcel->getActiveSheet()->setCellValue('C1', '数量');
  8. $i = 2;
  9. foreach($data as $item){
  10. $resultPHPExcel->getActiveSheet()->setCellValue('A' . $i, $item['quarter']);
  11. $resultPHPExcel->getActiveSheet()->setCellValue('B' . $i, $item['name']);
  12. $resultPHPExcel->getActiveSheet()->setCellValue('C' . $i, $item['number']);
  13. $i ++;
  14. }

3,设置导出的一些參数 

版本号一:

  1. //设置导出文件名称
  2. $outputFileName = 'total.xls';
  3. $xlsWriter = new PHPExcel_Writer_Excel5($resultPHPExcel);
  4. //ob_start();  ob_flush();
  5. header("Content-Type: application/force-download");
  6. header("Content-Type: application/octet-stream");
  7. header("Content-Type: application/download");
  8. header('Content-Disposition:inline;filename="'.$outputFileName.'"');
  9. header("Content-Transfer-Encoding: binary");
  10. header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
  11. header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  12. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  13. header("Pragma: no-cache");
  14. $xlsWriter->save( "php://output" );

版本号二:

  1. $writer = PHPExcel_IOFactory::createWriter($resultPHPExcel, 'Excel5');
  2. $writer->setTempDir(Yii::app()->basePath.'/runtime');
  3. $filename = "单.xls";
  4. header("Pragma: public");
  5. header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
  6. header("Content-Type: application/force-download");
  7. header('Content-Type: application/vnd.ms-excel');
  8. header('Content-Disposition: attachment;filename="' . $filename . '"');
  9. header('Cache-Control: max-age=0');
  10. $writer->save('php://output');

4,添加�附件(非必需)

  1. $objPHPExcel    = new PHPExcel();
  2. $objReader = PHPExcel_IOFactory::createReader('Excel5');
  3. $objReader->setReadDataOnly(true);
  4. foreach($data2 as $item){
  5. $fp = dirname(__FILE__) . "/../../../" . $item['file_path'] ;
  6. $objPHPExcel = $objReader->load($fp);
  7. $objWorksheet = $objPHPExcel->getActiveSheet();
  8. $resultPHPExcel->addExternalSheet($objWorksheet);
  9. }

高级主题 

1,excel5与excel2007差别 

zipArchive.php 

有非常多php(php.ini)不支持excel2007,所以建议使用excel5。 





2,设置暂时文件位置 

假设报暂时文件名称错,则更改暂时文件路径 

xlsWriter.setDirName(Yii::app()->basePath.'/runtime'); 





3,设置excel单元格的格式 

过滤 



4,输出有错。 

默认$xlsWriter->save( "php://output" );可能由于缓存不够大,而显示不完整,所以做个中转,方式例如以下:

  1. $finalFileName = (Yii::app()->basePath.'/runtime/'.time().'.xls';
  2. $xlsWriter->save($finalFileName);
  3. echo file_get_contents($finalFileName);  //file_get_contents() 函数把整个文件读入一个字符串中。和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。

使用PHPExcel导入导出excel格式文件的更多相关文章

  1. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  2. Powerdesigner 导出Excel格式数据字典 导出Excel格式文件

    版权声明:本文为博主原创文章,转载请注明出处; 网上我也看到了很多的Powerdesigner 导出方法,因为Powerdesigner 提供了部分VBA功能,所以让我用代码导出Excel格式文件得以 ...

  3. NPOI 操作数据库中数据的导入导出(Excel.xls文件) 和null数据的处理。

    App.config: <?xml version="1.0" encoding="utf-8" ?> <configuration> ...

  4. phpcms 用phpexcel导入导出excel

    html <form method="post" action="?m=content&c=content&a=public_add_excel&q ...

  5. phpexcel 导入导出excel表格

    phpexcel中文实用手册 转载:http://www.cnblogs.com/freespider/p/3284828.html 下面是总结的几个使用方法 include 'PHPExcel.ph ...

  6. 将页面中表格数据导出excel格式的文件(vue)

    近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安 ...

  7. ASP.NET Core导入导出Excel文件

    ASP.NET Core导入导出Excel文件 希望在ASP.NET Core中导入导出Excel文件,在网上搜了一遍,基本都是使用EPPlus插件,EPPlus挺好用,但商用需要授权,各位码友若有好 ...

  8. asp.net core web的导入导出excel功能

    这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core ...

  9. 将Mysql的一张表导出至Excel格式文件

    将Mysql的一张表导出至Excel格式文件 导出语句 进入mysql数据库,输入如下sql语句: select id, name, age from tablename into outfile ' ...

随机推荐

  1. 在桌面Linux环境下开发图形界面程序的方案对比

    在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的 ...

  2. SqlServer 不同服务器之间数据库连接、数据库登录、数据传递

    需求:我是本地数据库想纯SQL访问其它服务器上的数据库,而不使用数据库客户端的连接.这里面就想到了数据库link,通过下面的代码进行创建以后,就可以在本地对链接的服务器数据库进行操作了--添加SQLS ...

  3. lvs+keepalived+nginx+tomcat

    # 拓扑如下所示 # 节点分布情况 LVS-dr-master eth0: 192.168.146.141 LVS-dr-slave eth0: 192.168.146.142 nginx1: eth ...

  4. Fling!

    算法:深搜 很不错的一道题!!! Fling is a kind of puzzle games available on phone. This game is played on a board ...

  5. js判断当前操作系统

    function validataOS(){ if(navigator.userAgent.indexOf(“Window”)>0){ return ”Windows”; }else if(na ...

  6. 服务器是windows时tomcat无法打印所有日志配置修改

    Tomcat运行仅一天磁盘空间突然就增加了很多,发现是日志文件太大了,修改tomcat的日志配置即可. 查看目录所占空间大小: ? 1 [root@XXX webapps]du -sh 清理方法: ? ...

  7. Edusoho 的 Arale validator使用说明

    1.js控制器文件开端 var Validator = require('bootstrap.validator'); require('common/validator-rules').inject ...

  8. Flask学习记录之Flask-Admin

    相信用过Django框架的都不会忘记它强大的Admin功能,Flask-admin是一款能够与Django Admin所媲美的扩展,能够快速创建Web管理界面,实现了用户.文件增删改查等常用功能:也可 ...

  9. Linux平台Makefile文件的编写基础篇(转)

    目的:       基本掌握了 make 的用法,能在Linux系统上编程.环境:       Linux系统,或者有一台Linux服务器,通过终端连接.一句话:有Linux编译环境.准备:      ...

  10. 【object-c基础】Object-c基础之三:面对对象开发@interface,@implementation

    1.@interface 在java等语言编程中,创建类都是用class,但在object-c中,用@interface. 例子: @interface circle :NSObject    //定 ...