使用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. REST深入浅出

    不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正确”方式,一场争论正进行的如火如荼:虽然当前主流的方式明显地集中在基于SOAP.WSDL和WS-*规范的Web Services领域,但也 ...

  2. Java基础知识强化65:基本类型包装类之Integer的构造方法

    1. Integer类概述 (1)Integer类在对象中包装了一个基本类型 int 的值,Integer类型的对象包含一个int类型的字段. (2)该类提供了多个方法,能在int类型和String类 ...

  3. 大数据笔记11:MapReduce的运行流程

    1.基本概念 (1)Job & Task (2)JobTracker (3)TaskTracker

  4. Messager( 消息窗口) 组件

    一. 加载方式消息窗口提供了不同的消息框风格,包含 alert(警告框).confirm(确认框).prompt(提示框).progress(进度框)等.所有消息框都是异步的,用户可以在交互消息之后使 ...

  5. Abstract-抽象类

    本人理论较差,之前会做却不明原因,最近在改别人的代码发现实现方式完全不同,但对于我这个理论白痴来说完全不知道为什么别人要这么写,好处在哪里. 没有理论的指导,会用也只是不断的Copy前人,永远无法让程 ...

  6. OpenSuse如何共享目录

    如何在SUSE Linux 建立共享文件夹 1./etc/samba/smb.conf 打开配置文档 2.在文档的最后加上共享的文档夹/opt,下面是示例. nte143:/etc/samba # v ...

  7. css部分总结

    10.19HTML总结 1.<!DOCTYPE HTML>声明:告知浏览器文档使用哪种HTML或者XHTML规范,该标签可声明三种DTD(文档类型定义)类型:严格版本.过渡版本以及基于框架 ...

  8. python 下的数据结构与算法---3:python内建数据结构的方法及其时间复杂度

    目录 一:python内部数据类型分类 二:各数据结构 一:python内部数据类型分类 这里有个很重要的东西要先提醒注意一下:原子性数据类型和非原子性数据类型的区别 Python内部数据从某种形式上 ...

  9. oc 多线程UI更新

    1.在子线程中是不能进行UI 更新的,而可以更新的结果只是一个幻像:因为子线程代码执行完毕了,又自动进入到了主线程,执行了子线程中的UI更新的函数栈,这中间的时间非常的短,就让大家误以为分线程可以更新 ...

  10. c++ 链表删除重复的数据

    //List.h #include <iostream> typedef int dataType; struct Node{ Node():data(),pNextNode(NULL){ ...