我正在尝试将 xls 文件转换为 json,我可以成功转换它,但是当我尝试将 xlsx 文件转换为 json 时,出现错误“未捕获的 header 签名:预期 d0cf11e0a1b11ae1 看到 504b030414000808”。
索引.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>XL to JSON</title>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script src=" https://cdnjs.cloudflare.com/ajax/libs/xls/0.7.4-a/xls.js"></script>
</head>
<body>
<input type="file" id="my_file_input" />
<div id='my_file_output'></div>
<script>
var oFileIn;
$(function() {
oFileIn = document.getElementById('my_file_input');
if(oFileIn.addEventListener) {
oFileIn.addEventListener('change', filePicked, false);
}
});
function filePicked(oEvent) {
// Get The File From The Input
var oFile = oEvent.target.files[0];
var sFilename = oFile.name;
// Create A File Reader HTML5
var reader = new FileReader();
// Ready The Event For When A File Gets Selected
reader.onload = function(e) {
var data = e.target.result;
var cfb = XLS.CFB.read(data, {type: 'binary'});
var wb = XLS.parse_xlscfb(cfb);
// Loop Over Each Sheet
wb.SheetNames.forEach(function(sheetName) {
// Obtain The Current Row As CSV
var sCSV = XLS.utils.make_csv(wb.Sheets[sheetName]);
var oJS = XLS.utils.sheet_to_row_object_array(wb.Sheets[sheetName]);
$("#my_file_output").html(sCSV);
console.log(oJS)
});
};
// Tell JS To Start Reading The File.. You could delay this if desired
reader.readAsBinaryString(oFile);
}
</script>
</body>
</html>
任何人都可以告诉我应该如何解决这个问题。我严重陷入这个问题。提前致谢。
最佳答案
您正在使用的 xls 库不支持 xlsx 文件。请使用更新后的版本:
https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.8.0/xlsx.js
您可以找到有关此 here 的更多详细信息和文档.
关于javascript - 无法使用javascript将xlsx文件转换为json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38396539/