準(zhǔn)備工作:
1.首先,下載一個(gè)PHPExcel類包,下方是上傳的類包的下載路徑
https://github.com/PHPOffice/PHPExcel
2.安裝PHPExcel到CI中
a). 解壓壓縮包中的Classes文件夾中的內(nèi)容到application\libraries\目錄下牲蜀,目錄結(jié)構(gòu)如下:
—application\libraries\PHPExcel.PHP
— application\libraries\PHPExcel (文件夾)
b).修改application\libraries\PHPExcel\IOFactory.php 文件
— 將文件中其定義的類名從PHPExcel_IOFactory改為IOFactory介蛉,遵從CI類命名規(guī)則搔课。
—將其構(gòu)造函數(shù)改為public
3.編寫代碼
$this->load->library('PHPExcel');
$this->load->library('PHPExcel/IOFactory');
$phpexcel = new PHPExcel();
// 設(shè)置表頭
$phpexcel->setActiveSheetIndex(0)
->setCellValue('A1', '訂單號(hào)')
->setCellValue('B1', '訂單內(nèi)容')
->setCellValue('C1', '創(chuàng)建時(shí)間')
->setCellValue('D1', '付費(fèi)時(shí)間')
->setCellValue('E1', '金額')
->setCellValue('F1', '狀態(tài)');
// 設(shè)置樣式
$phpexcel->createSheet();
$objSheet = $phpexcel->getActiveSheet();
$objSheet->getColumnDimension('A')->setWidth(25); //設(shè)置列寬
$objSheet->getColumnDimension('B')->setWidth(35);
$objSheet->getColumnDimension('C')->setWidth(15);
$objSheet->getColumnDimension('D')->setWidth(15);
// 標(biāo)簽名
$phpexcel->getActiveSheet()->setTitle('付費(fèi)記錄');
// 使用第一個(gè)表
$phpexcel->setActiveSheetIndex(0);
$objWriter = new PHPExcel_Writer_Excel5($phpexcel);
// 查詢到的數(shù)據(jù)源
$key = 0;
foreach ($result->orderlist as $value) {
//表格是從2開始的 因?yàn)樯厦孢€有表頭
$value->o_month_num;
$i=$key+2;
$key++;
//這里是設(shè)置A1單元格的內(nèi)容
$phpexcel->getActiveSheet()->setCellValue('A'.$i,? $value->orderid);
//這里是設(shè)置B1單元格的內(nèi)容
$phpexcel->getActiveSheet()->setCellValue('B'.$i,? "按并發(fā)人數(shù)付費(fèi)(".$value->o_concurrent_num. "人)開通時(shí)長(zhǎng):".$value->o_month_num."個(gè)月");
//這里是設(shè)置C1單元格的內(nèi)容
$phpexcel->getActiveSheet()->setCellValue('C'.$i, $this->getToolTime($value->o_time));
//這里是設(shè)置D1單元格的內(nèi)容
$phpexcel->getActiveSheet()->setCellValue('D'.$i,? $this->getToolTime($value->o_charge_time));
//這里是設(shè)置E1單元格的內(nèi)容
$phpexcel->getActiveSheet()->setCellValue('E'.$i,? "¥".$value->o_actual_amount."00");
$state = "";
if ($value->o_state == 3) {
$state = "成功";
}else if($value->o_state == 2) {
$state = "失敗";
}else{
$state = "待支付";
}
$phpexcel->getActiveSheet()->setCellValue('F'.$i,? $state);
//以此類推,可以設(shè)置C D E F G看你需要了卡睦。
}
$outputFileName = '訂單記錄'.time().'.xls';
header('Content-Type: application/vnd.ms-excel');
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Disposition:inline;filename="'.$outputFileName.'"');
header("Content-Transfer-Encoding: binary");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
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");
$objWriter->save("php://output");