Шаг 1: Загрузка файла
<input>
<input type="file" id="fileUploader" name="fileUploader" accept=".xls, .xlsx">
Шаг 2: Обработка события изменения
fileUploader
$(document).ready(function() {
$("#fileUploader").change(function(evt) {
// Здесь будет ваш код
});
});
Шаг 3: Обработка загруженного файла
var selectedFile = evt.target.files[0];
Шаг 4: Преобразование данных файла
FileReader
XLSX
<script src="js/jquery.js"></script>
<script src="js/xlsx.full.min.js"></script>
Шаг 5: Функция преобразования Excel в JSON
$(document).ready(function() {
$("#fileUploader").change(function(evt) {
var selectedFile = evt.target.files[0];
var reader = new FileReader();
reader.onload = function(event) {
var data = event.target.result;
var workbook = XLSX.read(data, {
type: 'binary'
});
workbook.SheetNames.forEach(function(sheetName) {
var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
var json_object = JSON.stringify(XL_row_object);
document.getElementById("jsonObject").innerHTML = json_object;
});
};
reader.onerror = function(event) {
console.error("Файл не может быть прочитан. Код ошибки: " + event.target.error.code);
};
reader.readAsBinaryString(selectedFile);
});
});
Пример использования
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Excel to JSON</title>
<script src="js/jquery.js"></script>
<script src="js/xlsx.full.min.js"></script>
<script>
$(document).ready(function() {
$("#fileUploader").change(function(evt) {
var selectedFile = evt.target.files[0];
var reader = new FileReader();
reader.onload = function(event) {
var data = event.target.result;
var workbook = XLSX.read(data, {
type: 'binary'
});
workbook.SheetNames.forEach(function(sheetName) {
var XL_row_object = XLSX.utils.sheet_to_row_object_array(workbook.Sheets[sheetName]);
var json_object = JSON.stringify(XL_row_object);
document.getElementById("jsonObject").innerHTML = json_object;
});
};
reader.onerror = function(event) {
console.error("Файл не может быть прочитан. Код ошибки: " + event.target.error.code);
};
reader.readAsBinaryString(selectedFile);
});
});
</script>
</head>
<body>
<input type="file" id="fileUploader" name="fileUploader" accept=".xls, .xlsx">
<pre id="jsonObject"></pre>
</body>
</html>