程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 利用PHPExcel將數據導出到xls格式的excel文件

利用PHPExcel將數據導出到xls格式的excel文件

編輯:關於PHP編程

利用PHPExcel將數據導出到xls格式的excel文件


在開發某地的經營許可證管理系統的時候需要將數據導出打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');//設置邊框顏色 復制代碼 更多資料請百度一下,如有問題歡迎指正!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved