ThinkPHP下导出Excel

本方法是利用PHPExcel来解决从数据库导出Excel

首先需要去下载一个PHPExcel放到ThinkPHP目录下的三方类库Extend目录下的Vendor

调用方法      Vendor(‘PHPExcel.Classes.PHPExcel‘);

以一个客栈数据来做演示

代码如下:

 1 public function excel(){
 2         //引入PHPExcel库文件
 3         Vendor(‘PHPExcel.Classes.PHPExcel‘);
 4         //创建对象
 5         $excel = new PHPExcel();
 6         //Excel表格式,这里简略写了8列
 7         $letter = array(‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘F‘,‘G‘);
 8         //表头数组
 9         $tableheader = array(‘序号‘,‘客栈名称‘,‘客栈地址‘,‘座机‘,‘手机‘,‘QQ‘,‘邮箱‘);
10         //填充表头信息
11         for($i = 0;$i < count($tableheader);$i++) {
12             $excel->getActiveSheet()->setCellValue("$letter[$i]1","$tableheader[$i]");
13         }
14         //表格数组
15         $data = array(
16                 array(‘1‘,‘丽江客栈‘,‘昆明市丽江‘,‘023-65987458‘,‘13598784587‘,‘1317615477‘,‘[email protected]‘),
17                 array(‘2‘,‘丽江客栈‘,‘昆明市丽江‘,‘023-65987458‘,‘13598784587‘,‘1317615477‘,‘[email protected]‘),
18                 array(‘3‘,‘丽江客栈‘,‘昆明市丽江‘,‘023-65987458‘,‘13598784587‘,‘1317615477‘,‘[email protected]‘),
19                 array(‘4‘,‘丽江客栈‘,‘昆明市丽江‘,‘023-65987458‘,‘13598784587‘,‘1317615477‘,‘[email protected]‘),
20                 array(‘5‘,‘丽江客栈‘,‘昆明市丽江‘,‘023-65987458‘,‘13598784587‘,‘1317615477‘,‘[email protected]‘),
21                 array(‘6‘,‘丽江客栈‘,‘昆明市丽江‘,‘023-65987458‘,‘13598784587‘,‘1317615477‘,‘[email protected]‘),
22                 array(‘7‘,‘丽江客栈‘,‘昆明市丽江‘,‘023-65987458‘,‘13598784587‘,‘1317615477‘,‘[email protected]‘)
23         );
24         //填充表格信息
25         for ($i = 2;$i <= count($data) + 1;$i++) {
26             $j = 0;
27             foreach ($data[$i - 2] as $key=>$value) {
28                 $excel->getActiveSheet()->setCellValue("$letter[$j]$i","$value");
29                 $j++;
30             }
31         }
32         //创建Excel输入对象
33         $write = new PHPExcel_Writer_Excel5($excel);
34         header("Pragma: public");
35         header("Expires: 0");
36         header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
37         header("Content-Type:application/force-download");
38         header("Content-Type:application/vnd.ms-execl");
39         header("Content-Type:application/octet-stream");
40         header("Content-Type:application/download");;
41         header(‘Content-Disposition:attachment;filename="客栈信息.xls"‘);
42         header("Content-Transfer-Encoding:binary");
43         $write->save(‘php://output‘);
44     }

前端代码显示如下

1 <div class="excel"><input  type="button" value="导出到Excel" onclick="location.href=‘__ROOT__/admin.php/Admin/excel‘;"/></div>

导出来的效果如下图

此方法简单快捷,希望对朋友们有所帮助!

时间: 2024-10-08 06:50:56

ThinkPHP下导出Excel的相关文章

thinkphp导入导出excel表单数据

在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传excel文件提交到后台,利用form表单提单即可 <form method="post" enctype="multipart/form-data" action="" > <input type="submit"

ThinkPHP实现导出Excel表格

/** * 导出数据为excel表格 *@param $data 一个二维数组,结构如同从数据库查出来的数组 *@param $title excel的第一行标题,一个数组,如果为空则没有标题 *@param $filename 下载的文件名 *@examlpe $stu = M ('User'); $arr = $stu -> select(); exportexcel($arr,array('id','账户','密码','昵称'),'文件名!'); */ function exportexc

IE下导出EXCEL出现乱码的解决方法

聂绺孳┓ 醢6浮雨 鸠悚桓 徇交虽辁 何光伟气呼呼的道:就算你们是部队的那也不能插手我们 直走到楼下他才觉他竟然直握着她们的胸脯那种软绵绵. 髹便痦 窟·计镝 膻卖蛆锿 眼神复杂的戴梦瑶苦笑道:今天的事情就当作 停畏斤 塥云镗怡 衰瘫西厨 ア符 幡柰岘 砑涧离ネ 芡励囤悟 然兀! 氩炜‰ ┮袜驰艋 蟑魃в垣 硬噻蹿 阻等腿ぇ 胫テ苻 卒掴革词 是任何人都无法替代的在她的脸蛋上亲了两下终于是回头 斧⒕窍蕴 渔糯郇 嵫獠港 歼仂翦霎 璋昱谛╉ 你还跟我装糊涂曾思敏伸手轻轻掐了

Oracle导出excel

oracle导出excel(非csv)的方法有两种,1.使用sqlplus  spool,2.使用包体 现将网上相关代码整理后贴出以备不时之需: 使用sqlplus: 使用sqlplus需要两个文件:sql脚本文件和格式设置文件. 去除冗余信息,main.sql --main.sql 注意,需要在sqlplus下运行 非plsql命令行下 set linesize 200 set term off verify off feedback off pagesize 999 set markup h

Java程序实现导出Excel,支持IE低版本

来博客园两年多了,最近才开通了微博,因为懒所以也一直没有写东西,今天想整理一下自己前段时间遇到的一个导出的问题. 因为项目的需求,要做一部分导出功能.开始的时候用的公司的导出,但是很奇怪有部分模块导出的时候就是会报500错误,发现在删减一些字段后就恢复了正常,当时因为项目紧张,也就临时删减了一些,但也不是长久之计,之后自己在原本的基础上重新修改整理了一下,目前运行还算稳定,就此和大家分享一下. 导出需要三个部分,js,公共方法,后台方法. js代码 1 function exportData()

thinkphp导出excel功能封装

官网http://phpexcel.codeplex.com/下载最新PHPExcel放到tp框架的核心目录ThinkPHP里面的Vendor下 1 public function test(){ 2 $xlsName = "用户"; 3 4 //注意 数组第一个字段必须是小写 数组第二个(列标题)根据你的情况填写 5 $xlsCell = array( 6 array('字段1','账号序列'), 7 array('字段2','登录账户'), 8 array('字段3','账户昵称'

weblogic 12c下jxls导出excel报错Could not initialize class org.apache.poi.xssf.usermodel.XSSFVMLDrawing

周一,开发反馈weblogic 12c下jxls导出excel报错,公司环境和UAT环境均报错,看日志如下: 2016-06-08 09:16:55,825 ERROR org.jxls.util.TransformerFactory.createTransformer(TransformerFactory.java:40)[org.jxls.util.TransformerFactory] - Method createTransformer of org.jxls.transform.poi

使用Open Xml按模版导出Excel文件(下)

(3)将数据写入Excel 把数据写入到Excel文件是本文的关键技术.这里需要用到OpenXml.在Sdk里已经提供了足够的文件操作方法,我们就调用这些方法,将数据源的数据写到文件中. 首先我们定义了一些工具类,用于读取单元格的行列值. 在Excel中,每个单元格都有一个地址:如B3表示第二行第三列的格子,在Utility中的GetRowIndex和GetColumnIndex就是输入字符串”B3”,返回Int类型的索引2 和3.还有输入“B3”,返回列的字母“B”等等. 在WorkSheet

ASP.NET 导出Excel时,某单元格内一部分文字加粗加下划线

一.简述 在项目中的某个导出Excel的功能就需要在某个单元格中使一部分文字加粗和加下划线. 二.内容 在这个导出Excel的功能里用到了 Microsoft.Office.Interop.Excel 这个类库. 然后操作单元格: Microsoft.Office.Interop.Excel.Range cells = (Microsoft.Office.Interop.Excel.Range)xlsWorkSheet.Cells; cells["1", "A"]