LuckyExcel转为JSON格式

记录一下自己使用的一下代码片段:

ExcelToJson:function(fileUrl,fileName,callback){

    LuckyExcel.transformExcelToLuckyByUrl(fileUrl, fileName, function (exportJson, luckysheetfile) {
        if (exportJson.sheets == null || exportJson.sheets.length == 0) {
            layer.closeAll('loading');
            layer.msg('数据获取失败,请重试!');
            return;
        }

        var xlsxData = exportJson.sheets[0].celldata;
        var thList = [];
        xlsxData.forEach(function (item) {
            var vv;
            if (item.v.v !== undefined) {
                vv = item.v.v;
            } else if (item.v.ct && item.v.ct.s !== undefined) {
                vv = item.v.ct.s[0].v;
            } else {
                vv = '';
            }
            if (item.r == 0) {
                // 表头
                thList[item.c] = vv;
            }
        });

        var paiArr = [];
        for (let i in thList) {
            var obj = {};
            obj[thList[i]] = i;
            paiArr.push(obj);
        }

        var tableData = [];
        var objTemp = {};
        xlsxData.forEach(function (item, index) {
            var vv;
            if (item.v.v !== undefined) {
                vv = item.v.v;
            } else if (item.v.ct && item.v.ct.s !== undefined) {
                vv = item.v.ct.s[0].v;
            } else {
                vv = '';
            }

            if (item.r != 0) {
                // 表数据
                for (let i in paiArr) {
                    var cName = Object.keys(paiArr[i])[0];
                    if (item.c == paiArr[i][cName]) {
                        objTemp[cName] = vv;
                    }
                }
                var nextIndex = index + 1;
                if (nextIndex == xlsxData.length || xlsxData[nextIndex].r != item.r) {
                    // 没有下一个了,或 下一个是新一行开始
                    tableData.push({ ...objTemp });
                    objTemp = {};
                }
            }
        });

        // console.log(tableData);
        if (callback) {
            callback(tableData);
        }
    });
}

版权归属:albert_luo@lizipro.cn
本文标题:
LuckyExcel转为JSON格式

本文链接: https://albert.lizipro.cn/archives/luckyexcelzhuan-wei-jsonge-shi

posted @ 2025-06-14 13:22  taotooler  阅读(58)  评论(0)    收藏  举报