欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

thinkphp-PHP实现pdf导出功能

程序员文章站 2022-08-01 19:40:50
二话不说直接上代码 注释部分为excel导出 ......

二话不说直接上代码 注释部分为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');
*/
}