首页 > 代码库 > PHPexcel数据按模板导出

PHPexcel数据按模板导出

 1 <?php 2 header("Content-type: text/html; charset=gb2312");  3 error_reporting(E_ALL); 4 ini_set(‘display_errors‘, TRUE); 5 ini_set(‘display_startup_errors‘, TRUE); 6  7 define(‘EOL‘,(PHP_SAPI == ‘cli‘) ? PHP_EOL : ‘<br />‘); 8  9 date_default_timezone_set(‘Europe/London‘);10 11 /** PHPExcel_IOFactory */12 require_once dirname(__FILE__) . ‘/../Classes/PHPExcel/IOFactory.php‘;13 $objReader = PHPExcel_IOFactory::createReader(‘Excel5‘);14 //设置模板文件15 $objPHPExcel = $objReader->load("templates/bills.xls");16 //将json字符串转换为数组17 $billData = json_decode($_REQUEST["billData"],true);18 //填充单元格19 $objPHPExcel->getActiveSheet()->setCellValue(‘B4‘, $billData[‘party‘])20                               ->setCellValue(‘B5‘, $billData[‘game‘])21                               ->setCellValue(‘A9‘, $billData[‘month‘])22                              ->setCellValue(‘I28‘, $billData[‘total‘])23                               ->setCellValue(‘H30‘, $billData[‘partyaccount‘][‘name‘])24                               ->setCellValue(‘H31‘, $billData[‘partyaccount‘][‘bank‘])25                               ->setCellValue(‘H32‘, $billData[‘partyaccount‘][‘account‘])26                               ->setCellValue(‘H33‘, $billData[‘partyaccount‘][‘address‘])27                               ->setCellValue(‘H34‘, $billData[‘partyaccount‘][‘contactpeople‘])28  29                               ->setCellValue(‘H35‘, $billData[‘partyaccount‘][‘contacttel‘]);30 31  //循环填充相同标题单元格32  $row=11;                             33 foreach($billData[‘bills‘] as $r => $dataRow) {34     $objPHPExcel->getActiveSheet()->setCellValue(‘B‘.$row, $dataRow[‘cardtype‘])35                                   ->setCellValue(‘c‘.$row, $dataRow[‘orderamount‘])36                                   ->setCellValue(‘D‘.$row, $dataRow[‘feerate‘])37                                   ->setCellValue(‘E‘.$row, $dataRow[‘fee‘])38                                   ->setCellValue(‘F‘.$row, $dataRow[‘amount‘])39                                   ->setCellValue(‘G‘.$row, $dataRow[‘partyratio‘])40                                   ->setCellValue(‘H‘.$row, $dataRow[‘partynumber‘])41                                   ->setCellValue(‘I‘.$row, $dataRow[‘partyamount‘])42                                   ->setCellValue(‘J‘.$row, $dataRow[‘memo‘]);43  $objPHPExcel->getActiveSheet()->getStyle(‘c‘.$row)->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);       44    $row++;45 }46 47 $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5‘);48 49 $str= mb_convert_encoding("out/bill_".$billData[‘party‘].‘_‘.$billData[‘game‘].‘_‘.$billData[‘month‘].".xls","gb2312","UTF-8");50 $objWriter->save($str);51 //让访问浏览器直接下载文件流52 Header("Location: /out/bill_".$billData[‘party‘].‘_‘.$billData[‘game‘].‘_‘.$billData[‘month‘].".xls");