在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使用写到博客中,作为以后开发的一个参考,免得再次使用的时候需要导出找资料,也给其他同行一个参考。作者:DragonDean,博客地址:http://www.cnblogs.com/dragondean/

什么是PHPExcel?

PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言。可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML等等。

下载PHPExcel

phpexcel的官方网站地址是:http://phpexcel.codeplex.com/,我们可以从中下载需要的文件。我下载的是1.8的版本。下载之后将他解压到网站的根目录。

开发背景说明

此次开发是使用的ThinkPHP框架,根据查询的条件导出所有的内容。另外有一个导入的功能,我将另外撰文。更详细的说明请参考代码部分的注释。

导出部分的代码如下:

//导入相关文件
require_once $_SERVER['DOCUMENT_ROOT'].'/PHPExcel/Classes/PHPExcel.php';
//实例化
$phpexcel = new PHPExcel();
//设置比标题
$phpexcel->getActiveSheet()->setTitle('毅创科技 提示技术支持');
//设置表头
$phpexcel->getActiveSheet() ->setCellValue('A1','餐证字')
->setCellValue('B1','单位名称')
->setCellValue('C1','法定代表人')
->setCellValue('D1','城市')
->setCellValue('E1','地区')
->setCellValue('F1','地址')
->setCellValue('G1','类别')
->setCellValue('H1','备注(经营范围)')
->setCellValue('I1','发证机关')
->setCellValue('J1','起始日期')
->setCellValue('K1','终止日期')
->setCellValue('L1','食品安全管理人')
->setCellValue('M1','是否执证')
->setCellValue('N1','发证日期')
->setCellValue('O1','联系电话')
->setCellValue('P1','使用面积')
->setCellValue('Q1','从业人员数')
->setCellValue('R1','变更情况')
->setCellValue('S1','持证情况')
->setCellValue('T1','所属监管科室');
//从数据库取得需要导出的数据
$list=$db->where($where)->select();
//用foreach从第二行开始写数据,因为第一行是表头
$i=2;
foreach($list as $val){
$phpexcel->getActiveSheet() ->setCellValue('A'.$i,'吉'.$val['czz_nian'].$val['czz_hao'])
->setCellValue('B'.$i, $val['danwei'])
->setCellValue('C'.$i, $val['faren'])
->setCellValue('D'.$i, $val['dz_chengshi'])
->setCellValue('E'.$i, $val['dz_diqu'])
->setCellValue('F'.$i, $val['dizhi'])
->setCellValue('G'.$i, $val['leibie'])
->setCellValue('H'.$i, $val['beizhu'])
->setCellValue('I'.$i, $val['fazheng'])
->setCellValue('J'.$i, $val['qs_nian'].'-'.$val['qs_yue'].'-'.$val['qs_ri'])
->setCellValue('K'.$i, $val['zz_nian'].'-'.$val['zz_yue'].'-'.$val['zz_ri'])
->setCellValue('L'.$i, $val['anquan'])
->setCellValue('M'.$i, $val['zhizheng'])
->setCellValue('N'.$i, $val['fz_nian'].'-'.$val['fz_yue'].'-'.$val['fz_ri'])
->setCellValue('O'.$i, $val['dianhua'])
->setCellValue('P'.$i, $val['shiyongmianji'])
->setCellValue('Q'.$i, $val['renshu'])
->setCellValue('R'.$i, $val['biangeng'])
->setCellValue('S'.$i, $val['chizheng'])
->setCellValue('T'.$i, $val['keshi']);
$i++;
} $obj_Writer = PHPExcel_IOFactory::createWriter($phpexcel,'Excel5');
$filename ='Export'. date('Y-m-d').".xls";//文件名 //设置header
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$filename.'"');
header("Content-Transfer-Encoding: binary");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: no-cache");
$obj_Writer->save('php://output');//输出
die();//种植执行

导出的文件预览:

其他的相关属性设置参考(来源于网络资料)

//设置文档基本属性
$objProps = $phpexcel->getProperties();
$objProps->setCreator("章贡区医疗保险局");
$objProps->setLastModifiedBy("章贡区医疗保险局");
$objProps->setTitle("章贡区医疗保险局职工月增减变动报表");
$objProps->setSubject("章贡区医疗保险局职工月增减变动报表");
$objProps->setDescription("章贡区医疗保险局职工月增减变动报表");
$objProps->setKeywords("章贡区医疗保险局职工月增减变动报表");
$objProps->setCategory("变动报表");

PHPExcel如何合并/分离单元格

$objPHPExcel->getActiveSheet()->mergeCells('A18:E22');
$objPHPExcel->getActiveSheet()->unmergeCells('A18:E22');

PHPExcel如何设置列宽/行高

$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(12);
$objPHPExcel->getActiveSheet()->getRowDimension(3)->setRowHeight(16); 

PHPExcel如何设置样式

$objStyleA1 = $phpexcel->getActiveSheet()->getStyle('A1');
$objStyleA1->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //设置水平对其
$objStyleA1->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER); //设置垂直对其
$objFontA1 = $objStyleA1->getFont();
$objFontA1->setName('宋体');
$objFontA1->setSize(18); $objFontA1->setBold(true);

PHPExcel如何设置边框

$objActSheet->getStyle('A2')->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objActSheet->getStyle('A2')->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN );
$objPHPExcel->getActiveSheet()->getStyle('D13')->getBorders()->getLeft()->getColor()->setARGB('FF993300');//设置边框颜色

更多资料请百度一下,如有问题欢迎指正!

利用PHPExcel将数据导出到xls格式的excel文件的更多相关文章

  1. 数组转xls格式的excel文件&数据转csv格式的excle

    /** * 数组转xls格式的excel文件 * @param array $data 需要生成excel文件的数组 * @param string $filename 生成的excel文件名 * 示 ...

  2. Matlab处理数据导出Paraview可读的vtk文件(二)

    由于我在用SPH方法仿真时用的是FORTRAN语言,并且没有找到直接输出vtk文件的代码,因此偷懒通过MATLAB转换一下数据. 用到的Matlab子程序可通过一下链接找到. Matlab处理数据导出 ...

  3. c# 用OpenXmL读取.xlsx格式的Excel文件 返回DataTable

    1.须要引用的dll :  DocumentFormat.OpenXml.dll  ---须要安装一下OpenXml再引用 WindowsBase  ---直接在项目里加入引用 2.方法: /// & ...

  4. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  5. PHP 利用PHPExcel到处数据到Excel;还有导出数据乱码的解决方案。

    直接贴代码吧 PHP版本5.6.38 mysql版本5.0 //连接数据库 $mysql_server_name = "*.*.*.*"; $mysql_username=&quo ...

  6. ThinkPHP 整合 PHPExcel ,数据导出功能实现,解决Invalid cell coordinate

    PHPExcel想必大家都不陌生,是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取.写入不同格式的电子表格 本次只做数据导出功能的 ...

  7. 使用PHPExcel将数据导出至Excel

    安装类库 从GitHub上下载PHPExcel类库 地址:https://github.com/PHPOffice/PHPExcel 解压后将Classes文件夹移动到ThinkPHP的extend目 ...

  8. tp3.2,php5使用PHPExcel将数据导出至Excel

    安装类库 从GitHub上下载PHPExcel类库 地址:https://github.com/PHPOffice/PHPExcel public function checkexcel($id){ ...

  9. 使用NPOI将数据导出为word格式里的table

    开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. ...

随机推荐

  1. 【java规则引擎】drools6.5.0版本中kmodule.xml解析

    kmodule.xml文件存放在src/main/resources/META-INF/文件夹下. <?xml version="1.0" encoding="UT ...

  2. LG5055 【模板】可持久化文艺平衡树

    题意 您需要写一种数据结构,来维护一个序列,其中需要提供以下操作(对于各个以往的历史版本): 在第 pp 个数后插入数 xx . 删除第 pp 个数. 翻转区间 [l,r][l,r],例如原序列是 { ...

  3. 自定义springmvc统一异常处理器(实现HandlerExceptionResolver接口)不起作用的一种情况

    ExceptionResolverCustom 这个是自定义的异常处理器类. 在springmvc中注册 在web.xml文件中屏蔽springmvc自动注册的异常处理器 网上的资料就是这么配置的,可 ...

  4. hbase使用中需要注意一些问题

    接触hbase已经两年之久,但是真正的在实际项目中使用却只有半年的时间,使用过程中,一方面在在为hbase强大的性能兴奋之余,另一方面却也给我和我的团队造成了很多的麻烦,起初在使用我的水平也就停留在会 ...

  5. 冒泡排序的JavaScript实现

    1. 普通冒泡 思想 假设有n个数,按从小到大排序: 进行n-1次外循环,每次外循环会排好当前处理的数中的最大数,即进行第一次外循环排好所有数中的最大数,进行第二次外循环排好所有数中的次大数....直 ...

  6. 三种实现Ajax的方式

    本文主要是比较三种实现Ajax的方式 1. prototype.js 2. jquery1.3.2.min.js 3. json2.js Java代码 收藏代码 后台处理程序(Servlet),访问路 ...

  7. windows中文编码报错 com.google.gson.JsonIOException: java.nio.charset.MalformedInputException: Input length = 1

    昨天碰到一个问题:同一个请求页面,页面经过匹配后调用http的post协议接口,部署在linux环境的没问题,本地Eclipse启动的tomcat也没问题,直接启动本地tomcat却报错了: 18:4 ...

  8. java多线程-------------基础的Thread.CURRNET

    总结:感觉不是太难,不过我写出来了,但竟然不理解它的意思?多线程就是多个任务同时进行 public class Test2 { public static void main(String[] arg ...

  9. 杂项:WiKi

    ylbtech-杂项:WiKi Wiki是一种在网络上开放且可供多人协同创作的超文本系统,由沃德·坎宁安于1995年首先开发,这种超文本系统支持面向社群的协作式写作,同时也包括一组支持这种写作.沃德· ...

  10. Java-Maven-Runoob:Maven 项目模板

    ylbtech-Java-Maven-Runoob:Maven 项目模板 1.返回顶部 1. Maven 项目模板 Maven 使用 archetype(原型) 来创建自定义的项目结构,形成 Mave ...