首页 > 编程 > PHP > 正文

利用PHPExcel将数据导出到xls格式的excel文件

2020-03-22 19:47:42
字体:
来源:转载
供稿:网友
  • 在开发某地的经营许可证管理系统的时候需要将数据导出打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的版本。下载之后将他解压到网站的根目录。

    开发背景说明

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

    导出部分的代码如下:
    //导入相关文件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';//文件名//设置headerheader('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');//设置边框颜色

    PHP编程

    郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

  • 发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表