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‘,‘账户昵称‘),
 9     array(‘字段4‘,‘真实姓名‘),
10     array(‘字段5‘,‘身份‘)
11   );
12   $xlsModel = M(‘表名‘);
13   $xlsData = $xlsModel->Field(‘字段1,字段2,字段3,字段4,字段5‘)->select();
14   $this->exportExcel($xlsName,$xlsCell,$xlsData);
15 }

//导出excel $expTitle:文件名称 $expCellName:表头标题 $expTableData:数据源

 1 public function exportExcel($expTitle,$expCellName,$expTableData){
 2   vendor("phpexcel.Classes.PHPExcel");
 3   $xlsTitle = iconv(‘utf-8‘, ‘gb2312‘, $expTitle);//文件名称
 4   $fileName = $xlsTitle;//or $xlsTitle 文件名称可根据自己情况设定
 5   $cellNum = count($expCellName);
 6   $dataNum = count($expTableData);
 7
 8   $objPHPExcel = new \PHPExcel();
 9   $cellName = array(‘A‘,‘B‘,‘C‘,‘D‘,‘E‘,‘F‘,‘G‘,‘H‘,‘I‘,‘J‘,‘K‘,‘L‘,‘M‘,‘N‘,‘O‘,‘P‘,‘Q‘,‘R‘,‘S‘,‘T‘,‘U‘,‘V‘,‘W‘,‘X‘,‘Y‘,‘Z‘,‘AA‘,‘AB‘,‘AC‘,‘AD‘,‘AE‘,‘AF‘,‘AG‘,‘AH‘,‘AI‘,‘AJ‘,‘AK‘,‘AL‘,‘AM‘,‘AN‘,‘AO‘,‘AP‘,‘AQ‘,‘AR‘,‘AS‘,‘AT‘,‘AU‘,‘AV‘,‘AW‘,‘AX‘,‘AY‘,‘AZ‘);
10
11   $objPHPExcel->getActiveSheet(0)->mergeCells(‘A1:‘.$cellName[$cellNum-1].‘1‘);//合并单元格
12   $objPHPExcel->setActiveSheetIndex(0)->setCellValue(‘A1‘, $expTitle.‘ 导出时间:‘.date(‘Y-m-d H:i:s‘));
13   for($i=0;$i<$cellNum;$i++){
14   $objPHPExcel->setActiveSheetIndex(0)->setCellValue($cellName[$i].‘2‘, $expCellName[$i][1]);
15   }
16   // Miscellaneous glyphs, UTF-8
17   for($i=0;$i<$dataNum;$i++){
18     for($j=0;$j<$cellNum;$j++){
19       $objPHPExcel->getActiveSheet(0)->setCellValue($cellName[$j].($i+3), $expTableData[$i][$expCellName[$j][0]]);
20     }
21   }
22
23   header(‘pragma:public‘);
24   header(‘Content-type:application/vnd.ms-excel;charset=utf-8;name="‘.$xlsTitle.‘.xls"‘);
25   header("Content-Disposition:attachment;filename=$fileName.xls");//attachment新窗口打印inline本窗口打印
26   $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5‘);
27   $objWriter->save(‘php://output‘);
28   exit;
29 }
时间: 2024-11-01 13:46:50

thinkphp导出excel功能封装的相关文章

扩展GridView导出Excel功能

using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Runtime.CompilerServices;using System.Text;using System.Web;using System.Web.Compilation;using System.Web.UI;using System.Web.UI.WebControls; namespace Web{ 

flex 导出Excel功能实现

方法一: 1.Excel导出主要代码: try   {    var bytes: ByteArray = new ByteArray();    bytes.writeMultiByte(DataGridExporter.exportSCV(dataGrid),"cn-gb");    var fr:FileReference = new FileReference();    var date:Date = new Date();    var dateTime:String =

项目笔记:导出Excel功能分sheet页插入数据

导出Excel功能分sheet页处理数据: /*导出EXCEL*/ public void createExcel() { log.info("导出Excel功能已经启动-BEGIN"); JxlUtil jsl = new JxlUtil(); List<Device> dataList =new ArrayList<Device>(); List<DeviceExport> list = new ArrayList<DeviceExport

laravel-admin 自定义导出excel功能,并导出图片

https://www.jianshu.com/p/91975f66427d 最近用laravel-admin在做一个小项目,其中用到了excel导出功能. 但是laravel-admin自带的导出功能不带图片,并且导出的数据有很多冗余的字段,并非我所需要的功能. 所以参考官方文档调整代码,实现了自定义导出excel文件,并且带上图片: 步骤如下: 1. 安装laravel-excel插件 可参考laravel5.5 中使用laravel-excel composer require maatw

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

这里主要记录下asp.net core web页面上进行导入导出excel的操作. 主要是导入,因为现在使用的很多前端框架(例如kendo ui)本身就有导出的功能. 这里使用到EPPlus.Core,其实对于excel的导入导出还可以使用NPOI, 这里讲解EPPlus的方式 1.创建asp.net core web (mvc)项目 效果图如下 2.在项目上右键,进入nuget管理器,安装EPPlus.Core 3.添加一个XlsxController控制器,在其中添加导入和导出功能 usin

Atitit.导出excel功能的设计 与解决方案

1.1. 项目起源于背景1 1.2. Js  jquery方案(推荐)jquery.table2excel1 1.3. 服务器方案2 1.4. 详细信息2 1.5. 参考4 1.1. 项目起源于背景 正好我们项目也正好在研究更快速的导出excel的方法..昨天终于有了结论..除了我们常用的后端导出excel,前端js导出excel效果也不错,估计可以覆盖90%的领域...所以更好的导出方案就是 js导出(90%)+后端语言导出(10%),取长补短,结合使用 1.2. Js  jquery方案(推

C# 关于导出EXCEL功能

/// <summary>        /// 导出Excel数据        /// </summary>        /// <param name="search"></param>        /// <returns></returns>        public ActionResult ExportExcel(SearchEntity search)//查询条件         { List

java、jsp导出excel功能备份

问题踩坑: ajax请求不能下载文件 必须这样: <a href="/media">点击下载Excel</a> 或者 location.href = '/media'; js取表单数据: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Consolas; color: #788d93 } span.s1 { color: #c39900 } span.s2 { color: #2fafa9 } var s

DataTable 更改在有数据列的类型方法+DataTable 导出excel功能

/// <summary> /// 导出功能 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btn_export_Click(object sender, EventArgs e) { try { string strSql = CreateStrWhere