Prechádzať zdrojové kódy

修改村务考室生成表格(自动) word

sandm 2 rokov pred
rodič
commit
ad8b96ef29

+ 37 - 15
app/Http/Controllers/Web/Talent/JjhcController.php

@@ -9,6 +9,7 @@ use PhpOffice\PhpSpreadsheet\IOFactory;
 use PhpOffice\PhpSpreadsheet\Cell\DataType;
 use PhpOffice\PhpWord\IOFactory as WordIOFactory;
 use PhpOffice\PhpWord\Settings;
+use PhpOffice\PhpWord\TemplateProcessor;
 use Illuminate\Support\Facades\DB;
 use App\Exceptions\ResponseException;
 use Illuminate\Http\Request;
@@ -46,25 +47,46 @@ class JjhcController extends WebBaseController
         if($keyword != "j0vOW5mBREZxdo3P"){
             throw new ResponseException("who are you?", [], 404);
         }
-        for ($room = 11;$room <= 52; $room++){
-            $list = DB::table("recruit_ticket")->leftJoin("recruit_appoint_info","recruit_ticket.appoint_id",'=','recruit_appoint_info.id')->where("recruit_ticket.ex_start",'2022-05-17 08:00:00')->where('recruit_ticket.ex_room',$room)->orderBy('ex_seat','ASC')->get()->toArray();
+//        for ($room = 11;$room <= 52; $room++){
+//            $list = DB::table("recruit_ticket")->leftJoin("recruit_appoint_info","recruit_ticket.appoint_id",'=','recruit_appoint_info.id')->where("recruit_ticket.ex_start",'2022-05-17 08:00:00')->where('recruit_ticket.ex_room',$room)->orderBy('ex_seat','ASC')->get()->toArray();
+//
+//            $objPHPExcel = IOFactory::load(base_path() . "/public/cunwu.xlsx");
+//            $sheet = $objPHPExcel->getActiveSheet();
+//            $row = 4;
+//            $sheet->setCellValue('A1', "晋江市公开招聘第十二批村务(社区)专职工作者
+//笔试参考情况一览表(第".intval($room)."考场)");
+//
+//            foreach ($list as $k => $v){
+//                $sheet->setCellValueByColumnAndRow('1',$row, $v->ex_seat);
+//                $sheet->setCellValueByColumnAndRow('2',$row, $v->realname);
+//                $sheet->setCellValueExplicitByColumnAndRow('3',$row, $v->ex_number,DataType::TYPE_STRING);
+//                $row++;
+//            }
+//
+//            $writer = IOFactory::createWriter($objPHPExcel, 'Xlsx');
+//            $writer->save(base_path() . "/public/excel/cunwu{$room}.xlsx");
+//        }
 
-            $objPHPExcel = IOFactory::load(base_path() . "/public/cunwu.xlsx");
-            $sheet = $objPHPExcel->getActiveSheet();
-            $row = 4;
-            $sheet->setCellValue('A1', "晋江市公开招聘第十二批村务(社区)专职工作者
-笔试参考情况一览表(第".intval($room)."考场)");
 
-            foreach ($list as $k => $v){
-                $sheet->setCellValueByColumnAndRow('1',$row, $v->ex_seat);
-                $sheet->setCellValueByColumnAndRow('2',$row, $v->realname);
-                $sheet->setCellValueExplicitByColumnAndRow('3',$row, $v->ex_number,DataType::TYPE_STRING);
-                $row++;
+        for ($room = 1;$room <= 52; $room++){
+            $word = new TemplateProcessor(base_path() . "/public/cunwu.docx");
+            $word->setValue('room', '1');
+            if($room<10){
+                $room = sprintf('%02s', $room);
             }
-
-            $writer = IOFactory::createWriter($objPHPExcel, 'Xlsx');
-            $writer->save(base_path() . "/public/excel/cunwu{$room}.xlsx");
+            $list = DB::table("recruit_ticket")->leftJoin("recruit_appoint_info","recruit_ticket.appoint_id",'=','recruit_appoint_info.id')->where("recruit_ticket.ex_start",'2022-05-17 08:00:00')->where('recruit_ticket.ex_room',$room)->orderBy('ex_seat','ASC')->get()->toArray();
+            $rows = count($list);//总行数
+            $word->cloneRow('id', $rows);//复制行
+            for ($i = 0; $i < $rows; $i++) {
+                $word->setValue("id#" . ($i + 1), $i + 1);//替换变量
+                $word->setValue("realname#" . ($i + 1), $list[$i]['realname']);
+                $word->setValue("ex_number#" . ($i + 1), $list[$i]['ex_number']);
+                $word->setValue("ex_seat#" . ($i + 1), $list[$i]['ex_seat']);
+            }
+            $word->saveAs(base_path() ."/excel/cunwu{$room}.docx");//另存为
         }
+
+
         echo "success";
 
 //        $list = DB::table('lt_apppointment')->distinct()->pluck('card')->toArray();