【无标题】excel里的题库,转为试卷

本来接到一个这样的活,一个exel里边一千多行的试题,多选,单选,判断啥的,让我做成试卷,在我奋战半小时后,才复制40多行。心态崩了。

是一个这样的文档
请添加图片描述
后来我一想,可以用js实现啊,读一下csv,存到一个list中,在使用html显示出来,加点样式不就ok了。

说干就干

请添加图片描述
最后效果
请添加图片描述

<!DOCTYPE html>
<html>
<head>
    <title>zxxbscj</title>
</head>
<body>
    <input type="file" id="csvFile" accept=".csv" onchange="handleFile(this)">
	<span>第二列提干, 3456为abcd ,第六列答案</span>
	  <div id="objectDisplay" class="name"></div>
    <script src="script.js"></script>
</body>
</html>


<script>
function handleFile(input) {
    const file = input.files[0];

    if (file) {
        const reader = new FileReader();

        reader.onload = function(e) {
            const csvContent = e.target.result;
            const csvArray = parseCSV(csvContent);
            displayCSVData(csvArray);
        };

        reader.readAsText(file);
    }
}

function parseCSV(csvContent) {
    const lines = csvContent.split('\n');
    const csvArray = [];

    lines.forEach(function(line) {
        const cells = line.split(',');
       // csvArray.push(cells);
    });

    return csvArray;
}

function displayCSVData(csvArray) {
	const objectDisplay = document.getElementById('objectDisplay');
	
    console.log(csvArray); // 打印CSV数据数组到控制台
	for( let i = 0; i<csvArray.length-1 ; i++){
	 
		 const div1 = document.createElement('div');
		 div1.classList.add("name1"); // 添加自定义样式类名
		 
		 const div2 = document.createElement('div');
		  div2.classList.add("name2");
		 const div3 = document.createElement('div');
		  div3.classList.add("name3");
		 div1.textContent = `${[i+1]} : ${csvArray[i][1]} `;
		 objectDisplay.appendChild(div1);
		 if(csvArray[i][0] == '判断题'){
			  div2.textContent = ` A: ${csvArray[i][2]}, B: ${csvArray[i][3]},`
		 }else{
			 div2.textContent = ` A: ${csvArray[i][2]}, B: ${csvArray[i][3]},C: ${csvArray[i][4]},D: ${csvArray[i][5]},  `;
		 }
		 objectDisplay.appendChild(div2);
		 div3.textContent = ` 正确答案: ${csvArray[i][6]} `;
	
		 
		 objectDisplay.appendChild(div3);
	}

	
}

</script>
<style>
	.name{
		background-color: azure;
	}
	.name1{
		line-height: 25px;
		font-weight: bold;
		margin-bottom: 10px;
	}
	.name2{
		margin-bottom: 10px;
	}
	.name3{
		margin-bottom: 20px;
		 
	}
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值