当前位置: 首页 > news >正文

塘沽做网站的公司电子商城市场

塘沽做网站的公司,电子商城市场,做企业商城网站,长沙关键词优化平台最近在开发有关考试试卷相关的内容,需要生成试卷的word文档并下载。 这里用到了phpoffice/phpword插件,这里记录下一些开发过程中注意的点。 1.安装phpoffice/phpword composer require phpoffice/phpword2.准备一个word模板方便向其中写入需要生成的…

最近在开发有关考试试卷相关的内容,需要生成试卷的word文档并下载。

这里用到了phpoffice/phpword插件,这里记录下一些开发过程中注意的点。

1.安装phpoffice/phpword

composer require phpoffice/phpword

2.准备一个word模板方便向其中写入需要生成的内容

在这里插入图片描述

在这里插入图片描述

3.编写生成word的方法

<?php
use PhpOffice\PhpWord\Element\Table;
use PhpOffice\PhpWord\TemplateProcessor;class PaperLogic extends Logic
{// 下载试卷public function downloadPaper(array $papdfInfo){$baseData = [];// 获取试卷模板$templatePath = resource_path('template/paper/试卷模板.docx');$baseData['paper_name'] = $paperInfo['name'];$baseData['paper_topic_num'] = $paperInfo['topic_num'];$baseData['paper_num'] = $paperInfo['num'];$baseData['paper_score'] = $paperInfo['score'];$templateProcessor = new TemplateProcessor($templatePath);// 把基础信息渲染到试卷模板中$templateProcessor->setValues($baseData);// 这里处理的是试题相关内容$topic_list = $paperInfo['topic_list'];foreach ($topic_list as $key => $val) {$question_list = $val['question_list']->toArray();foreach ($question_list as $k => $v) {$option_arr = [];if (in_array($v['type'], ['1', '2', '3'])) {foreach ($v['option'] as $d) {$option_arr[] = $d['key'] . ':' . $d['label'];}}$v['option_arr'] = $option_arr;$v['answer'] = implode('、', $v['answer']);$question_list[$k] = $v;}$val['question_list'] = $question_list;$topic_list[$key] = $val;}$table = new Table(['borderSize' => 10,// 'borderColor' => '000000', // 默认黑色'borderColor' => 'FFFFFF', // 白色'unit' => 'nil',]);// 注意word模板中的文字换行为<w:br/>foreach ($topic_list as $k => $v) {$table->addRow();if ($v['describe']) {$table->addCell(10870, ['valign' => 'center'])->addText($v['name'] . '(' . $v['describe'] . ')', null, ['align' => 'left']);} else {$table->addCell(10870, ['valign' => 'center'])->addText($v['name'], null, ['align' => 'left']);}foreach ($v['question_list'] as $b) {$table->addRow();$table->addCell(10870, ['valign' => 'center'])->addText($b['index'] . '.' . $b['name'] . '   【' . $b['type_text'] . '】   ' . '(' . $b['score'] . '分)', null, ['align' => 'left']);$table->addRow();if (in_array($b['type'], ['1', '2'])) {$b['option_str'] = implode('<w:br/>', $b['option_arr']);$table->addCell(10870, ['valign' => 'center'])->addText($b['option_str'], null, ['align' => 'left']);$table->addRow();$table->addCell(10870, ['valign' => 'center'])->addText("正确选项:" . $b['answer_key'] . "<w:br/>正确答案:" . $b['answer'] . "<w:br/>答案解析:" . $b['analysis'], null, ['align' => 'left']);} else if ($b['type'] == '3') {$b['option_str'] = implode('<w:br/>', $b['option_arr']);$table->addCell(10870, ['valign' => 'center'])->addText($b['option_str'], null, ['align' => 'left']);$table->addRow();$table->addCell(10870, ['valign' => 'center'])->addText("正确答案:" . $b['answer'] . "<w:br/>答案解析:" . $b['analysis'], null, ['align' => 'left']);} else if ($b['type'] == '4') {$b['answer'] = str_replace('&', '或', $b['answer']);$table->addCell(10870, ['valign' => 'center'])->addText("正确答案:" . $b['answer'] . "<w:br/>答案解析:" . $b['analysis'], null, ['align' => 'left']);} else if ($b['type'] == '5') {$table->addCell(10870, ['valign' => 'center'])->addText("正确答案:" . $b['answer'] . "<w:br/>答案解析:" . $b['analysis'], null, ['align' => 'left']);}}}// 把生成的table表格渲染到mord模板中$templateProcessor->setComplexBlock('table', $table);// 生成新的word$tempPath = storage_path("app/public/temp/new_word.docx");$templateProcessor->saveAs($tempPath);}
}

4.生成结果

在这里插入图片描述

http://www.dtcms.com/a/536778.html

相关文章:

  • 一篇文章详解Kafka Broker
  • Vue3 创建项目
  • 怎样注册自己网站公司企业网站制作需要多少钱
  • 京东网站建设吗做宣传的网站
  • 单细胞空间--纤维相关蛋白阳性成纤维细胞调控伴瘤栓肾细胞癌的肿瘤微环境重构
  • Visual Studio 2022打包生成exe安装程序
  • 做造价在哪个网站查价格建筑公司年度工作总结报告
  • 现代化专业群建设专题网站搬瓦工wordpress建站
  • PostgreSQL PostGIS中的元数据表
  • ProcDump 学习笔记(6.11):以非交互方式运行 ProcDump(服务器/生产环境指南)
  • yolov4和yolov5(yolov4的工业化)
  • 手写线程池第1弹:深入理解线程池:从原理到实战,手写高性能线程池的完整指南
  • 网站没有域名电子商务网站硬件建设的核心
  • 上海 松江 网站制作南通做网站
  • 如何在 Spring Boot 项目中使用 @Slf4j 注解结合 Logback 进行系统日志管理
  • SQLite 事务
  • 第 1 章 JVM 和 Java 体系架构_java 字节码
  • MarketUP营销自动化核心方法:从数据驱动到全链路增
  • 沙田镇仿做网站网站价格
  • 信创背景下,中职计算机网络专业人才培养方案探讨
  • 且网站制作开源系统有哪些
  • AR智能巡检:电力运维的“透视眼”与“超级大脑”
  • 漳州电脑网站建设西安市建设网
  • 从冷换仓到热追踪:项目方如何在不暴露风险的前提下守住主动权
  • 机器人运动控制中的 Actor-Critic 强化学习预训练
  • [人工智能-大模型-97]:大模型应用层 - 随着技术的发展,软件工程与软件开发过程提效演进阶段(工具化 → 流程化 → 智能化)和未来的展望。
  • Qt从入门到放弃学习之路(1)
  • QRingBuffer:Qt内部高效环形缓冲区
  • 单位如何做网站宣传高端网站建设专业营销团队
  • 建设企业网站步骤上海做网站的公司是什么