1.固然是下載PHPexcel的插件了 http://phpexcel.codeplex.com/php
2.應用插件 我把插件和須要用到的excel模板放的是不一樣文件夾的,excel我放在public下的upload文件夾裏,excel插件我放在vendor文件裏數組
3.控制器的引用方法,這些應該是必須的app
注:由於我用的是thinkcmf5,裏面有自帶的phpexcel的方法,因此大家用其餘框架的我不知道可不能夠用,若是不能夠用,請把Loader改成框架
1 vendor('PHPExcel.Classes.PHPExcel'); 2 vendor('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory');
上面的若是讀不出來,可能就是裏面的路徑沒寫對spa
1 $dir = 'upload/'; //模板存放目錄 2 $templateName = 'account.xlsx'; //模板表 3 $path = dirname(__FILE__); //找到當前腳本所在路徑 4 Loader::import('PHPExcel.Classes.PHPExcel'); 5 Loader::import('PHPExcel.Classes.PHPExcel.IOFactory.PHPExcel_IOFactory'); 6 7 $PHPExcel = new \PHPExcel(); 8 $PHPReader = new \PHPExcel_Reader_Excel2007(); 9 //讀取Excel 10 $PHPExcel = $PHPReader->load($dir.$templateName); 11 $currentSheet = $PHPExcel->getSheet(0);
4.樣式設置,你也能夠不設置插件
2 //設置水平居中 3 $PHPExcel->getActiveSheet()->getStyle('A')->getAlignment()->setHorizontal( \PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 4 $PHPExcel->getActiveSheet()->getStyle('B')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 5 $PHPExcel->getActiveSheet()->getStyle('C')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 6 $PHPExcel->getActiveSheet()->getStyle('D')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 7 $PHPExcel->getActiveSheet()->getStyle('E')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 8 $PHPExcel->getActiveSheet()->getStyle('F')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 9 $PHPExcel->getActiveSheet()->getStyle('G')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 10 $PHPExcel->getActiveSheet()->getStyle('H')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 11 $PHPExcel->getActiveSheet()->getStyle('I')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 12 $PHPExcel->getActiveSheet()->getStyle('J')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER); 13 $PHPExcel->getActiveSheet()->getStyle('K')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
5.把數據導入到excel模板裏面,個人是個二維數組excel
1 for($i=0;$i<count($deal);$i++){ 2 $currentSheet->setCellValue('A'.($i+3), date('Y-m-d H:i:s', $deal[$i]['create_time'])); //日期 3 $currentSheet->setCellValue('B'.($i+3),$deal[$i]['deal_type']); //交易類型 4 $currentSheet->setCellValue('C'.($i+3),$deal[$i]['roll_name']); //支出帳戶名稱 5 $currentSheet->setCellValue('D'.($i+3),$deal[$i]['roll_user']); //支出帳號 6 $currentSheet->setCellValue('E'.($i+3),$deal[$i]['receive_name']); //收入帳號名稱 7 $currentSheet->setCellValue('F'.($i+3),$deal[$i]['receive_user']); //收入帳戶 8 $currentSheet->setCellValue('G'.($i+3),$deal[$i]['account']); //交易金額 9 $currentSheet->setCellValue('H'.($i+3),$deal[$i]['roll_account']); //支出帳號交易後餘額 10 $currentSheet->setCellValue('I'.($i+3),$deal[$i]['receive_account']); //收入帳號交易後餘額 11 $currentSheet->setCellValue('J'.($i+3),$deal[$i]['user']); //操做員 12 $currentSheet->setCellValue('K'.($i+3),$deal[$i]['remark']); //訂單備註 13 }
6.這樣就能夠下載下來了,有兩種輸出格式,excel輸出是有表格線條的,網頁輸出沒有表格線條code
1 ob_clean(); 2 ob_start(); 3 $objWriteHTML = new \PHPExcel_Writer_Excel2007($PHPExcel); //輸出EXCLl格式的對象 4 header("Content-type: application/octet-stream;charset=utf-8"); 5 header('Content-Type: application/vnd.ms-excel'); 6 header('Content-Disposition: attachment;filename="funds.xlsx"'); //日期爲文件名後綴 7 header('Cache-Control: max-age=0'); 8 $objWriteHTML->save("php://output"); 9 10 exit;//退出
7.完成對象