使用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. 局域网指定 IP 地址后无法上网的问题

    子网掩码.默认网关.DNS 与局域网设置有关,建议指定前先 运行 cmd -> ipconfig /all 查看一下自动获取的信息. 另外留意指定IP 后需打开高级设置 -> WINS,勾 ...

  2. Foreach语法

    先看例子: Random rand = new Random(47); float f[] = new float[10]; for(int i = 0; i < 10; i++){ f[i] ...

  3. python:字符串取值

    某个字符串为stmp="abcdef54321" 取前面5个stmp[:5] #abcde 取后面5个stmp[-5:] #54321 从前面开始取,不包括最后两个stmp[:-2 ...

  4. 强制转https

    原文:http://blog.csdn.net/wzy_1988/article/details/8549290 需求简介 基于nginx搭建了一个https访问的虚拟主机,监听的域名是test.co ...

  5. CentOS NFS的安装配置、启动及mount挂载方法

    一.环境介绍: 服务器:centos 192.168.1.225 客户端:centos 192.168.1.226 二.安装: NFS的安装配置:centos 5 : yum -y install n ...

  6. OD: Windows Security Techniques & GS Bypassing via C++ Virtual Function

    Windows 安全机制 漏洞的万源之本在于冯诺依曼设计的计算机模型没有将代码和数据进行区分——病毒.加壳脱壳.shellcode.跨站脚本攻击.SQL注入等都是因为计算机把数据和代码混淆这一天然缺陷 ...

  7. 《第一行代码》学习笔记39-服务Service(6)

    1.Android中定时任务一般有两种实现方式:(1)使用Java API里提供的Timer类:(2)使用Android的Alarm机制. 但是,Timer类有个明显的短板,不太适用于那些需要长期在后 ...

  8. T-SQL 一次插入多行数据

    使用 INSERT SELECT 向表中插入数据 --将t1中查询到的数据插入添加到t2中(t2表必须存在,且顺序.数据类型必须与t1一致) INSERT INTO t2(USERNAME,PASSW ...

  9. C#构造函数使用

    作用:帮助我们初始化对像(给对像的每个属性依次的赋值) 构造函数是一个特殊的方法 1.构造函数没有返回值,连void也不能写 2.构造函数名称要和类名一样 3.创建对像时会执行构造函数 4.构造函数可 ...

  10. 织梦DEDECMS网站首页如何实现分页翻页

    织梦DEDECMS模板网站首页如何实现首页分页和翻页 方法如下:(三种方法,自己选择一种来实现分页吧) 第一种:调用ajax和参数的(不推荐)1.必须在DEDE首页模板中的<head>&l ...