1. 程式人生 > >thinkphp-PHP實現pdf導出功能

thinkphp-PHP實現pdf導出功能

ray ctype col ofa cto stat quest fun cache

二話不說直接上代碼 註釋部分為excel導出

    //  導出考試結果明細
public function export()
{
// 導出考試結果明細(PDF)
$id = I(‘id‘);
$detailed = D(‘member_test_result‘);
$parameter = $detailed->detailedResults($id);
$name = $parameter[‘member_name‘];
$result = json_decode($parameter[‘test_result_str‘]);
foreach ($result as $k => $v) {
$test = M(‘test_cont‘);
$array[‘question_title‘] = $test->where(‘id=‘ . $k)->getField(‘qustion_title‘);
//正確選項
$array[‘state‘] = $test->where(‘id=‘ . $k)->getField(‘state‘);
//正確答案
$wheres[‘test_id‘] = $k;
$wheres[‘state‘] = $array[‘state‘];
$array[‘stateresult‘] = M(‘test_answer‘)->where($wheres)->getField(‘answer_name‘);
//選項
$array[‘cont‘] = $v;
//選項內容
$where[‘test_id‘] = $k;
$where[‘state‘] = $array[‘cont‘];
$array[‘result‘] = M(‘test_answer‘)->where($where)->getField(‘answer_name‘);
$data[] = $array;
}
$content = ‘<!doctype html>‘;
$content .= ‘<html lang="en">‘;
$content .= ‘<head>‘;
$content .= ‘<meta charset="UTF-8" />‘;
$content .= ‘<title>考試結果</title>‘;
$content .= ‘</head>‘;
$content .= ‘<body>‘;
$content .= ‘<div class="content">‘;
$content .= ‘<p align="center" style="color: #0a6ebd;font-size: 24px"><b>考試結果</b></p>‘;
$content .= ‘ <div style="color:#6a6a6a;letter-spacing:4px">‘;
$content .= ‘<p><span>姓名:‘;
$content .= $name;
$content .= ‘</span>‘;
$content .= ‘<span style="color:#fff;">1231‘;
$content .= ‘</span>‘;
$content .= ‘<span style="" >考試用時:‘;
$content .= gmdate("i:s", $parameter[‘time_cost‘]);
$content .= ‘</span>‘;
$content .= ‘<span style="color:#fff;">1231‘;
$content .= ‘</span>‘;
$content .= ‘<span style="">考試分數:‘;
$content .= $parameter[‘score‘];
$content .= ‘</span>‘;
$content .= ‘<hr/>‘;
foreach ($data as $k => $v) {
$content .= ‘<p style=font-size: 20px><b>‘;
$content .= $k + 1;
$content .= ‘、</b>‘;
$content .= $v[‘question_title‘];
$content .= ‘</p>‘;
$content .= ‘<p style=" font-size: 14px">您的選項為:<span style="color:#0a6ebd;">‘;
$content .= $v[‘cont‘];
$content .= ‘</span></p>‘;
$content .= ‘<p style=" font-size: 14px">您的答案為:<span style="color:#0a6ebd;">‘;
$content .= $v[‘result‘];
$content .= ‘</span></p>‘;
$content .= ‘<p style=" font-size: 14px">正確選項為:<span style="color:red;">‘;
$content .= $v[‘state‘];
$content .= ‘</span></p>‘;
$content .= ‘<p style=" font-size: 14px">正確答案為:<span style="color:red;">‘;
$content .= $v[‘stateresult‘];
$content .= ‘</span></p>‘;
};
$content .= ‘</div>‘;
$content .= ‘</body>‘;
$content .= ‘</html>‘;
pdf($content);

// 導出考試結果明細(Excel)

/* header("Content-Typ:text/html;charset=utf-8");
vendor(‘Excel.PHPExcel‘);
vendor(‘Excel.PHPExcel.IOFactory‘);
$objPHPExcel = new \PHPExcel();
$objPHPExcel->getActiveSheet()->setCellValue(‘A1‘, "考試問題");//設置列的值
$objPHPExcel->getActiveSheet()->setCellValue(‘B1‘, "選項");//設置列的值
$objPHPExcel->getActiveSheet()->setCellValue(‘C1‘, "答案");//設置列的值
$objPHPExcel->getActiveSheet()->setCellValue(‘D1‘, "正確選項");//設置列的值
$objPHPExcel->getActiveSheet()->setCellValue(‘E1‘, "正確答案");//設置列的值
if($data){
$i=2;
foreach ($data as $key => $value) {
$objPHPExcel->setActiveSheetIndex(0)
//Excel的第A列,uid是你查出數組的鍵值,下面以此類推
->setCellValue(‘A‘.$i, $value[‘question_title‘])
->setCellValue(‘B‘.$i, $value[‘cont‘])
->setCellValue(‘C‘.$i, $value[‘result‘])
->setCellValue(‘D‘.$i, $value[‘state‘])
->setCellValue(‘E‘.$i, $value[‘stateresult‘]);
$i++;
}
}
$objPHPExcel->getActiveSheet(0)->setTitle(‘考試結果詳情報表‘);
header(‘Content-Type:application/vnd.ms-excel‘);
header("Content-Disposition:attachment;filename=".$time."考試結果詳情報表.docx");
header(‘Cache-Control: max-age=0‘);
$objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel5‘);
$objWriter->save(‘php://output‘);
*/
}

thinkphp-PHP實現pdf導出功能