利用JavaScript將Excel轉(zhuǎn)換為JSON示例代碼
前言
JSON是碼農(nóng)們常用的數(shù)據(jù)格式,輕且方便,而直接手敲JSON卻是比較麻煩和令人心情崩潰的(因?yàn)橹貜?fù)的東西很多),所以很多碼農(nóng)可能會和我一樣,選擇用Excel去輸入數(shù)據(jù),然后再想辦法轉(zhuǎn)換成JSON格式。今天教大家使用JS 將 Excel 轉(zhuǎn)為 JSON的方法。
1.新建HTML文件
<html lang="en"> <title> Convert Excel File To JSON </title> <head> <script> </script> </head> <body> </body>
我們可以使用<input>標(biāo)簽接收上傳文件。代碼如下:
<input type="file" id="fileUploader" name="fileUploader" accept=".xls, .xlsx"/>
2.監(jiān)聽input change 事件
<script>
$(document).ready(function(){
$("#fileUploader").change(function(evt){
// 上傳文件處理邏輯...
});
});
</script>
3.讀取上傳文件
在這里,我們假設(shè)用戶只上傳一個(gè)文件。
var selectedFile = evt.target.files[0];
接下來,我們將使用FileReader讀取該文件數(shù)據(jù)。從這個(gè)FileReader,我們可以讀取excel文件中的數(shù)據(jù)作為二進(jìn)制字符串。然后我們使用XLSX,它是SheetJS js-xlsx的內(nèi)置工具,將我們的二進(jìn)制字符串轉(zhuǎn)換為JSON對象。引入 XLSX
<script lang =“javascript”src =“dist/xlsx.full.min.js”> </ script>
您可以下載源碼xlsx.full.min.js
完整代碼
<html lang="en">
<title> Convert Excel File To JSON </title>
<head>
<script src="js/jquery.js"> </script>
<script lang="javascript" 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]);
if (XL_row_object.length > 0) {
document.getElementById("jsonObject").innerHTML = JSON.stringify(XL_row_object);
}
})
};
reader.onerror = function(event) {
console.error("File could not be read! Code " + event.target.error.code);
};
// 讀取上傳文件為二進(jìn)制
reader.readAsBinaryString(selectedFile);
});
});
</script>
</head>
<body>
<input type="file" id="fileUploader" name="fileUploader" accept=".xls, .xlsx"/>
</br></br>
JSON : <label id="jsonObject"> </label>
</body>
作為示例,我們使用如下的excel表格。

讀出json數(shù)據(jù)如下

大功告成!!!
SheetJS 還有很多實(shí)用的功能,具體更多功能請自行去github查看githu地址
演示源碼地址code
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對腳本之家的支持。
- Python爬取數(shù)據(jù)保存為Json格式的代碼示例
- C#網(wǎng)絡(luò)請求與JSON解析的示例代碼
- 基于Koa(nodejs框架)對json文件進(jìn)行增刪改查的示例代碼
- JS中的JSON對象的定義和取值實(shí)現(xiàn)代碼
- js循環(huán)map 獲取所有的key和value的實(shí)現(xiàn)代碼(json)
- Delphi中使用ISuperObject解析Json數(shù)據(jù)的實(shí)現(xiàn)代碼
- ASP 處理JSON數(shù)據(jù)的實(shí)現(xiàn)代碼
- 七行JSON代碼把你的網(wǎng)站變成移動應(yīng)用過程詳解
相關(guān)文章
JS前后端實(shí)現(xiàn)身份證號驗(yàn)證代碼解析
這篇文章主要介紹了JS前后端實(shí)現(xiàn)身份證號驗(yàn)證代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
self.attachevent is not a function的解決方法
今天一個(gè)客戶用chrome瀏覽器訪問網(wǎng)站,他的網(wǎng)站js提示self.attachevent is not a function,這個(gè)問題就是這個(gè)瀏覽器不支持attachevent,可以通過如下方法解決了,分享一下,需要的朋友可以參考下2017-04-04
javascript 像素拼圖實(shí)現(xiàn)代碼
非常不錯(cuò)的像素拼圖效果2009-04-04
關(guān)于Iframe父頁面與子頁面之間的相互調(diào)用
下面小編就為大家?guī)硪黄P(guān)于Iframe父頁面與子頁面之間的相互調(diào)用。小編覺得挺不錯(cuò)的,希望對大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-11-11
JS生態(tài)系統(tǒng)加速模塊解析賦能性能優(yōu)化探索
這篇文章主要為大家介紹了JS生態(tài)系統(tǒng)加速模塊解析賦能性能優(yōu)化探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01

