• 题库word格式下载


    我的项目是在TP中进行,所以这里以TP为实例:
    首先下载word类库,直接把PHPword解压到vendor文件夹中。点击下载相关文件
    上代码(控制器):

    function word(){
    		vendor('PHPWord.PHPWord');
    		vendor('PHPWord.IOFactory');
    		Vendor('PHPWord.PHPWord.Writer.Word2007');
    		$PHPWord  =  new PhpWord();
    		$section = $PHPWord->createSection();
    		$xiangqing=Db::table('guodu')->where('id','=',1)->find();
    		$where['tid']=array('in',$xiangqing["tihao"]);
    		$tiku=Db::table('test')
    			->join('leixing','leixing.lid=test.lid')
    			->where($where)
    			->field('test.*,leixing.lname')
    			->select();
    		$fenshu=$xiangqing['defen'];
    		$fen=explode(',',$fenshu);
    		$shuliang=$xiangqing['shuliang'];
    		$shuliang=explode(',',$shuliang);
    		$str9="总分".$xiangqing['zongfen']."分,时间".$xiangqing['ktime']."分钟";
    		$str1 ="单选题"."(本题共".$fen[0]*$shuliang[0]."分,每题".$fen[0]."分)";
    		$str2 ="多选题"."(本题共".$fen[1]*$shuliang[1]."分,每题".$fen[1]."分)";
    		$str3 ="判断题"."(本题共".$fen[2]*$shuliang[2]."分,每题".$fen[2]."分)";
    		$str4 ="填空题"."(本题共".$fen[3]*$shuliang[3]."分,每题".$fen[3]."分)";
    		$str5 ="大题"."(本题共".$fen[4]*$shuliang[4]."分,每题".$fen[4]."分)";
    		$title = $xiangqing['text'];
    		$section->addText($title,'rStyle','pStyle');
    		$section->addTextBreak(2);
    		$section->addText($str9,'cOntent');
    		$section->addTextBreak(2);
    		//准备工作
    		$tihao=['一、','二、','三、','四、','五、'];
    		$i=1;
    		$ii=1;
    		$iii=1;
    		$iiii=1;
    		$iiiii=1;
    		$iiiiii=0;
    		//单选题显示开始
    		if($shuliang[0]!=0){
    			$section->addText($tihao[$iiiiii++].$str1,'cOntent');
    			$section->addTextBreak(1);
    			foreach($tiku as $arr){
    				if($arr['lid']==1){
    					$section->addText($i++."、".$arr['tname'],'cOntent');
    					if($arr['tp']!="")
    						$section->addText('这里是图片!','cOntent');
    					$section->addTextBreak(1);
    					$xuanxiang=explode('_*_*_',$arr['xuanze']);
    					//shuffe可以打乱数组元素的顺序
    					shuffle($xuanxiang);
    					$danxuanxuanxiang[]=$xuanxiang;
    					$section->addText('  A、'.$xuanxiang[0].'.','cOntent');
    					$section->addText('  B、'.$xuanxiang[1].'.','cOntent');
    					$section->addText('  C、'.$xuanxiang[2].'.','cOntent');
    					$section->addText('  D、'.$xuanxiang[3].'.','cOntent');
    					$section->addTextBreak(1);
    				}
    			}
    			$section->addTextBreak(3);
    		}
    		//单选题结束 多选题开始
    		if($shuliang[1]!=0){
    			$section->addText($tihao[$iiiiii++].$str2,'cOntent');
    			$section->addTextBreak(1);
    			foreach($tiku as $arr){
    				$zimu='A';
    				if($arr['lid']==2){
    					$section->addText($ii++."、".$arr['tname'],'cOntent');
    					if($arr['tp']!="")
    						$section->addText('这里是图片!','cOntent');
    					$section->addTextBreak(1);
    					$xuanxiang=explode('_*_*_',$arr['xuanze']);
    					shuffle($xuanxiang);
    					$duoxuanxuanxiang[]=$xuanxiang;
    					foreach($xuanxiang as $v){
    						if($zimu=="A"){
    							$section->addText('  '.$zimu++.'、'.$v,'cOntent');
    						}else{
    							$section->addText('  '.$zimu++.'、'.$v,'cOntent');
    						}
    					}
    					$section->addTextBreak(1);
    				}
    			}
    			$section->addTextBreak(3);
    		}
    		//多选题结束 判断题开始
    		if($shuliang[2]!=0){
    			$section->addText($tihao[$iiiiii++].$str3,'cOntent');
    			$section->addTextBreak(1);
    			foreach($tiku as $arr){
    				if($arr['lid']==3){
    					$section->addText($iii++."、".$arr['tname'].'()','cOntent');
    					if($arr['tp']!="")
    						$section->addText('这里是图片!','cOntent');
    					$section->addTextBreak(1);
    				}
    			}
    			$section->addTextBreak(3);
    		}
    		//判断题结束 填空题开始
    		if($shuliang[3]!=0){
    			$section->addText($tihao[$iiiiii++].$str4,'cOntent');
    			$section->addTextBreak(1);
    			foreach($tiku as $arr){
    				if($arr['lid']==4){
    					$section->addText($iiii++."、".$arr['tname'],'cOntent');
    					if($arr['tp']!="")
    						$section->addText('这里是图片!','cOntent');
    					$section->addTextBreak(1);
    				}
    			}
    			$section->addTextBreak(3);
    		}
    		//填空题结束 大题开始
    		if($shuliang[4]!=0){
    			$section->addText($tihao[$iiiiii++].$str5,'cOntent');
    			$section->addTextBreak(1);
    			foreach($tiku as $arr){
    				if($arr['lid']==5){
    					$section->addText($iiiii++."、".$arr['tname'],'cOntent');
    					if($arr['tp']!="")
    						$section->addText('这里是图片!','cOntent');
    					$section->addTextBreak(2);
    				}
    			}
    			$section->addTextBreak(3);
    		}
    		//**************************************************开始输出答案
            //****************************************************准备工作
            $tihao=['一、','二、','三、','四、','五、'];
            $i=1;
            $ii=1;
            $iii=1;
            $iiii=1;
            $iiiii=1;
            $iiiiii=0;
            $danxuani=0;
            $duoxuani=0;
            $section->addText('答案:','cOntent');
            $section->addTextBreak(1);
            //单选题开始i
            if($shuliang[0]!=0){
                $section->addText($tihao[$iiiiii++].$str1,'cOntent');
                $section->addTextBreak(1);
                foreach($tiku as $arr){
                    if($arr['lid']==1){
                        $danxuandaan=danxuandaan($danxuanxuanxiang[$danxuani++],$arr['tdaan']);
                        $section->addText($i++."、".$danxuandaan."  ",'cOntent');
                    }
                }
                $section->addTextBreak(2);
            }
            //单选题结束 多选题开始
            if($shuliang[1]!=0){
                $zimu='A';
                $section->addText($tihao[$iiiiii++].$str2,'cOntent');
    			$section->addTextBreak(1);
                foreach($tiku as $arr){
                    if($arr['lid']==2){
    					$arr['tdaan']=explode('_*_*_',$arr['tdaan']);
                        $duoxuandaan=duoxuandaan($duoxuanxuanxiang[$duoxuani++],$arr['tdaan']);
                        $section->addText($i++."、".$duoxuandaan."  ",'cOntent');
                    }
    			}
                $section->addTextBreak(2);
            }
            //多选题结束 判断题开始
            if($shuliang[2]!=0){
                $section->addText($tihao[$iiiiii++].$str3,'cOntent');
                $section->addTextBreak(1);
                foreach($tiku as $arr){
                    if($arr['lid']==3){
                        $section->addText($iii++."、".$arr['tdaan']."  ",'cOntent');
                    }
                }
                $section->addTextBreak(2);
            }
            //判断题结束 填空题开始
            if($shuliang[3]!=0){
                $section->addText($tihao[$iiiiii++].$str4,'cOntent');
                $section->addTextBreak(1);
                foreach($tiku as $arr){
                    if($arr['lid']==4){
                        $section->addText($iiii++."、".$arr['tdaan']."  ",'cOntent');
                    }
                }
                $section->addTextBreak(2);
            }
            //填空题结束 大题开始
            if($shuliang[4]!=0){
                $section->addText($tihao[$iiiiii++].$str5,'cOntent');
                $section->addTextBreak(1);
                foreach($tiku as $arr){
                    if($arr['lid']==5){
    						$section->addText($iiiii++."、".$arr['tdaan'],'cOntent');
                        if($arr['tdp']!="")
                            $section->addText('这里是图片!','cOntent');
    					$section->addTextBreak(1);
                    }
                }
                $section->addTextBreak(3);
            }
    		/*************************************测试图片的上传****************************************/
    		$imageStyle = array('width'=>350, 'height'=>350, 'align'=>'center');
    		$section->addImage('__STATIC__/assets/images/users/avatar-1.jpg', $imageStyle);
    		/*************************************测试图片的上传****************************************/
    		$imageStyle=array('width'=>200,'height'=>200);
    		$section->addTextBreak(2);
    		$PHPWord->addFontStyle('cOntent', array('bold'=>false, 'size'=>12));
    		$PHPWord->addFontStyle('rStyle', array('bold'=>true, 'italic'=>false, 'size'=>16,'align'=>'center'));
    		$PHPWord->addParagraphStyle('pStyle', array('align'=>'center', 'spaceAfter'=>100));
    		$objWriter = PHPWord_IOFactory::createWriter($PHPWord, 'Word2007');
    		header("Content-Type: application/doc");
    		header("Content-Disposition: attachment; filename=".$xiangqing['text'].date("YmdHis").".doc");
    		$objWriter->save('php://output');
    		Db::table('jilu')->insert(['tihao'=>$xiangqing['tihao'],'time'=>date('Y-m-d H:i:s',time()),'defen'=>$xiangqing['defen'],'shuliang'=>$xiangqing['shuliang'],'zongfen'=>$xiangqing['zongfen'],'text'=>$xiangqing['text'],'ktime'=>$xiangqing['ktime'],'uid'=>Session::get('uid')]);
    	}
    

    可以使用文件中的手册查看其它更好用的功能

    博客园:https://www.cnblogs.com/huixincode
    如果此文章对您有所帮助记得打赏哦,一分也是对我的支持和鼓励,谢谢!
    转载文章请务必保留出处和署名,谢谢!
  • 相关阅读:
    2021年gitbook的安装报错,一次解决方案!
    配置docker看我一篇就够了----Windows10上Hyper-V 或者 WSL2配置Docker+Vscode完整配置
    React.JS详细分析token存储以及提取的方法,其中涉及技术(localStorage、react-cookies、immutable、JSON)
    GO语言: 双单链表、队列、进出栈打造一个简易的数据结构库 以及测试你的程序是否存在BUG!
    Redis管道操作
    Jedis连接池操作
    java连接Redis存储对象或值,用byte[]、String两种方式
    template标签配合vue用法
    linux系统中ssh免密登录
    linux系统scp、rsync拷贝操作命令使用
  • 原文地址:https://www.cnblogs.com/shx1024/p/11931254.html
Copyright © 2020-2023  润新知