有没有可以在线做化学实验的网站,怎么通过淘宝优惠券做网站赚钱,qq是哪个国家公司开发的软件,校园网站建设的需求分析1、背景 最近公司安排业务技能考试#xff0c;下发excel文件的题库#xff0c;在excel里查看并不是很方便#xff0c;就想着像学习驾考题目一样#xff0c;一边看一边做#xff0c;做完之后可以查看正确答案。
2、开始分析需求
题目格式如下图 需求比较简单#xff0c;…1、背景 最近公司安排业务技能考试下发excel文件的题库在excel里查看并不是很方便就想着像学习驾考题目一样一边看一边做做完之后可以查看正确答案。
2、开始分析需求
题目格式如下图 需求比较简单解析出 .xlsx 文件的每一行第一列是题目类型第二列为题干第三列是选项第四列是 正确答案。其中第三列再用 或者 /n 去 分割一下选项应该就可以了
3、实现功能 引入 node-xlsx 和 fs 。 使用 node-xlsx 解析出 .xlsx 文件 。并生成json 用 fs 生成js文件保存 json。 这里解析数据的功能就实现了
var xlsx require(node-xlsx);
const fs require(fs);
var obj xlsx.parse(./test.xlsx);
obj obj[0].data
// console.log(obj)
let orightData []
for(var i0;iobj.length;i) {console.log(第(i1)行的数据);orightData.push({type: obj[i][0],question: obj[i][1],options: obj[i][2],answer: obj[i][3],})
}// console.log(orightData)let jsonData JSON.stringify(orightData);
jsonData let res jsonData
fs.writeFile(data.js, jsonData, (err) {if (err) throw err;console.log(JSON data is saved.);
});
运行代码
node index.js
生成js文件 如下
let res [{type:类型,question:题目,options:选项,answer:答案},{type:选择题,question:域名MH.BIT.EDU.CN中主机名是(A),options:A、MH B、EDU C、CN D、BIT,answer:A},{type:选择题,question:根据《企业财务会计报告条例》的规定企业对外提供虚假财务会计报告可以对企业。,options:A. 直接责任人员处以2000元以上10000元以下罚款\n\nB. 处以100000元以上300000元以下罚款\n\nC. 处以5000元以上100000元以下罚款\n\nD. 处以2000元以上20000元以下罚款,answer:B}]
接下来就比较简单了把数组循环 显示到页面上就行了。我这里就用js直接拼接字符串 设置body 的 innerHTML 就可以了。配合添加class 来显示 答案。再美化一下样式。代码如下
!DOCTYPE html
html langen
headmeta charsetUTF-8meta nameviewport contentwidthdevice-width, initial-scale1.0titleDocument/title
/head
script src./data.js/script
bodydiv classcontengp classquestion/pp classoptions/pp classviewAnswer onclickviewAnswer(this)点击查看答案/pp classanswer/p/div
/body
script
console.log(res);
let html
res.forEach((el,index) {if(el.question?.length 10){el.options el.options.replace(/\n/g, )el.options el.options.split( ).join(i/i)html div classcontengp classquestionspan classtype[el.type]/span(index)、el.question/pp classoptionsel.options/pa class onclickviewAnswer(this)查看答案/ap classanswer【el.answer】/p/div}});
document.getElementsByTagName(body)[0].innerHTML html
function viewAnswer(that){that.className viewAnswer
}
/script
stylea{color: cadetblue;font-size: 13px;cursor: pointer;display: inline-block;margin-left: 40px;border-radius: 6px;text-align: center;line-height: 18px;color: #FFFFFF;background: #3388FF;cursor: pointer;padding: 5px 12px;}i{display: block;width: 10px;height: 1px;}.type{color:#3388FF}.options{color: #657180;font-size: 14px;padding-left: 60px;}.answer{visibility: hidden;}.viewAnswer .answer{visibility: visible;padding-left: 40px;}
/style
/html 执行完 node index.js 之后 双击打开index.html文件就可以了。效果如下图 最后
暂时先处理 单选题其他题型处理逻辑大同小异。