四时宝库

程序员的知识宝库

node上传excel并读取其中信息(node上传文件)

fileUp.uploadXlsx = async function(params) {
    try {
        var fileName = params['fileName'];
        var filePath = params['path'];
        var fileType = params['fileType'];
        console.log(fileName + ':' + fileType);
        if( filePath != null && filePath != undefined) {
            var sheets = xlsx.parse(filePath, { cellDates: true });
            // var arr = [];
            //sheets是一个数组,数组中的每一项对应test.xlsx这个文件里的多个表格,如sheets[0]对应test.xlsx里的“测试参数”这个表格,sheets[1]对应Sheet2这个表格
            var sheet = sheets[0]
            var newSheetsArr = [];
            //sheet是一个json对象,格式为{name:"测试参数",data:[]},我们想要的数据就存储在data里
            for(var i=1; i<sheet["data"].length; i++){ //excel文件里的表格一般有标题所以不一定从0开始
                var row=sheet['data'][i];
                if(row && row.length > 0){
                    console.log("row",row)
                    //手机号码正则
                    if((/^1[3456789]\d{9}$/.test(row[1]))&&row[0]>0&&row[2]){
                        //判断手机号是否存在,存在返回id,不存在创建用户并返回id
                        let userid = 0
                        let users = await daoUser.getByPhone(row[1])
                        if(users&&users.length>0){
                            userid = users[0].id;
                            await daoPoster.addComment([userid,row[0],row[2],row[3]])
                        }else{
                            //根据手机号码创建新用户
                            var dateNow = moment().utc().add(480,"minutes").toDate();
                            let addUserResult = await daoUser.addUser([row[1],row[1],dateNow]);
                            console.log("addUserResult",addUserResult)
                            if (addUserResult && addUserResult.insertId != 0){
                                userid=addUserResult.insertId;
                                await daoPoster.addComment([userid,row[0],row[2],row[3]])
                            }else{
                                console.log("添加用户失败,未取到userid")
                                return resultApi.helper(resultMsg.SYSTEM_ERROR.code,resultMsg.SYSTEM_ERROR.message);
                            }
                        }
                        //更新日活
                        await posterController.updateUserInteract(userid);
                    }else{
                        console.log("数据校验失败",row)
                    }
                    //否则数据跳过
                }
            }
            // arr.push(newSheetsArr);
            // console.log("arr",arr)
            // sheets.forEach(function(sheet){
            // }); 
            return resultApi.helper(resultMsg.SUCCESS.code,resultMsg.SUCCESS.message);
        }
    } catch (error) {
        console.log("error",error)
        return resultApi.helper(resultMsg.SYSTEM_ERROR.code,resultMsg.SYSTEM_ERROR.message);
    }
}

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接