thinkphp-PHP实现pdf导出功能
Posted 重剑无锋,大巧不工
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp-PHP实现pdf导出功能相关的知识,希望对你有一定的参考价值。
二话不说直接上代码 注释部分为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导出功能的主要内容,如果未能解决你的问题,请参考以下文章