前端js導(dǎo)入Excel,獲取json數(shù)據(jù)(親測有效)

痛點:在錄入數(shù)據(jù)時,靠人工將excel表格的內(nèi)容復(fù)制到網(wǎng)頁上,耗費人力及時間成本,且長時間操作后,準確率得不到保障。
需求:在網(wǎng)頁將Excel導(dǎo)入后,表格字段自動填充到網(wǎng)頁的對應(yīng)位置。

本文將著重介紹Excel文件導(dǎo)入及將導(dǎo)入數(shù)據(jù)轉(zhuǎn)換為json格式。

直接先上效果圖:

Excel.png
excel處理過的json對象.png

該功能使用原生js即可完成,趁著熱乎來記錄一下。需要用到xlsx.full.min.js,下載地址:https://www.cdnpkg.com/xlsx/file/xlsx.full.min.js/?id=78603

1、下載完成后,頁面引用;

<script src="js/xlsx.full.min.js"></script>

2、html代碼

<input type="file" onchange="impexcel(this)" />

3、js核心代碼;

// 導(dǎo)入excel
function impexcel(obj) {

    var wb; // 存放解析后的excel數(shù)據(jù)
    if(!obj.files) {
        return;
    }
    
    var f = obj.files[0];
    var reader = new FileReader();
    reader.onload = function(e) {
        var data = e.target.result;
        //將文件讀取為二進制字符串
        wb = XLSX.read(data, {
            type: 'binary'
        });
        
        // wb.SheetNames[0]是獲取第一個Sheet頁的名字
        console.log('sheet頁名稱:',wb.SheetNames[0]);
        
        // wb.Sheets[Sheet名]:獲取對應(yīng)Sheet頁的數(shù)據(jù)
        var dataArr = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]);
        console.log('當(dāng)前sheet頁數(shù)據(jù):',dataArr);
        
        dataArr.forEach((item,index)=>{
            console.log(`第${index+1}行數(shù)據(jù):`,item)
        })
        
    };
    reader.readAsBinaryString(f);
}

此時,我們已經(jīng)拿到了想要的json數(shù)據(jù)格式,可以對網(wǎng)頁進行數(shù)據(jù)渲染。之后的操作各有不同,就不繼續(xù)往下寫了,根據(jù)自己的需求處理即可。

至此,功能實現(xiàn),特此記錄!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容