利用JavaScript將Excel轉(zhuǎn)換為JSON示例代碼
前言
JSON是碼農(nóng)們常用的數(shù)據(jù)格式,輕且方便,而直接手敲JSON卻是比較麻煩和令人心情崩潰的(因?yàn)橹貜?fù)的東西很多),所以很多碼農(nóng)可能會(huì)和我一樣,選擇用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對(duì)象。引入 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í)用的功能,具體更多功能請(qǐng)自行去github查看githu地址
演示源碼地址code
總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。
- Python爬取數(shù)據(jù)保存為Json格式的代碼示例
- C#網(wǎng)絡(luò)請(qǐng)求與JSON解析的示例代碼
- 基于Koa(nodejs框架)對(duì)json文件進(jìn)行增刪改查的示例代碼
- JS中的JSON對(duì)象的定義和取值實(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)站變成移動(dòng)應(yīng)用過程詳解
相關(guān)文章
JS前后端實(shí)現(xiàn)身份證號(hào)驗(yàn)證代碼解析
這篇文章主要介紹了JS前后端實(shí)現(xiàn)身份證號(hào)驗(yàn)證代碼解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07self.attachevent is not a function的解決方法
今天一個(gè)客戶用chrome瀏覽器訪問網(wǎng)站,他的網(wǎng)站js提示self.attachevent is not a function,這個(gè)問題就是這個(gè)瀏覽器不支持attachevent,可以通過如下方法解決了,分享一下,需要的朋友可以參考下2017-04-04javascript 像素拼圖實(shí)現(xiàn)代碼
非常不錯(cuò)的像素拼圖效果2009-04-04CountUp.js數(shù)字滾動(dòng)插件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了CountUp.js數(shù)字滾動(dòng)插件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-10-10關(guān)于Iframe父頁面與子頁面之間的相互調(diào)用
下面小編就為大家?guī)硪黄P(guān)于Iframe父頁面與子頁面之間的相互調(diào)用。小編覺得挺不錯(cuò)的,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧,祝大家游戲愉快哦2016-11-11JS生態(tài)系統(tǒng)加速模塊解析賦能性能優(yōu)化探索
這篇文章主要為大家介紹了JS生態(tài)系統(tǒng)加速模塊解析賦能性能優(yōu)化探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01