用html+js随机选取excel中的题,进行考试
时间: 2023-12-10 14:38:53 浏览: 32
实现这个功能的核心是读取 Excel 文件并将其转换为可供 JavaScript 使用的数据格式。可以使用第三方库 js-xlsx 来实现这个功能。以下是一个简单的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>随机选取Excel中的题</title>
</head>
<body>
<h1>随机选取Excel中的题</h1>
<div id="question"></div>
<button onclick="generateQuestion()">下一题</button>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.16.9/xlsx.full.min.js"></script>
<script>
var questions = [];
// 读取 Excel 文件
var xhr = new XMLHttpRequest();
xhr.open('GET', 'questions.xlsx', true);
xhr.responseType = 'arraybuffer';
xhr.onload = function(e) {
var data = new Uint8Array(xhr.response);
var workbook = XLSX.read(data, {type: 'array'});
// 转换为 JavaScript 对象
var sheet_name_list = workbook.SheetNames;
sheet_name_list.forEach(function(sheet_name) {
var worksheet = workbook.Sheets[sheet_name];
var rows = XLSX.utils.sheet_to_json(worksheet, {header: 1});
rows.shift(); // 去掉标题行
rows.forEach(function(row) {
questions.push({question: row[0], answer: row[1]});
});
});
};
xhr.send();
// 随机选择一道题
function generateQuestion() {
var index = Math.floor(Math.random() * questions.length);
document.getElementById('question').innerHTML = questions[index].question;
}
</script>
</body>
</html>
```
在这个示例中,我们首先使用 XMLHttpRequest 对象读取 Excel 文件。然后,使用 js-xlsx 将 Excel 文件转换为 JavaScript 对象,并保存在一个数组中。最后,我们定义一个 generateQuestion 函数来随机选择一道题并在页面上显示它。
需要注意的是,在本地文件系统中使用 XMLHttpRequest 对象来读取文件可能会出现安全问题。因此,我们需要将这个 HTML 文件放在一个 Web 服务器上才能正常使用。