账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    excel文件上传问题?
    37
    0
    我在点击导入学生时,上传excel文件总是会报Uncaught ReferenceError: XLSX is not definedat FileReader.reader.onload的错误是什么原因导致的?求指点代码如下://导入 importExcel(obj) { if (this.classId == "" || this.classId == null) { this.$message({ type: "info", message: "请选择要导入学生数据的班级", }); } else { if (!obj.files) { //导入的数据 return; } let file = obj.files[0], //导入的数据 types = file.name.split(".")[1], //拿到类型 fileType = ["xlsx", "xlc", "xlm", "xls", "xlt", "xlw", "csv"].some( (item) => item === types ); if (!fileType) { alert("格式错误!请重新选择"); return; } this.file2Xce(file).then((tabJson) => { //tabJson就是解析出来的json数据,数据格式如下 if (tabJson && tabJson.length > 0) { console.log(tabJson) this.file3cex(tabJson); } else { alert("导入数据为空!!!"); } }); } }, file2Xce(file) { return new Promise(function (resolve, reject) { let reader = new FileReader(); //创建FileReader对象,将文件内容读入内存,通过一些api接口,可以在主线程中访问本地文件 reader.onload = function (e) { //onload 当读取操作成功完成时调用 let data = e.target.result; this.wb = XLSX.read(data, { type: "binary", //二进制 }); // XLSX.utils.json_to_sheet(data) 接收一个对象数组并返回一个基于对象关键字自动生成的“标题”的工作表,默认的列顺序由使用Object.keys的字段的第一次出现确定 resolve( XLSX.utils.sheet_to_json(this.wb.Sheets[this.wb.SheetNames[0]]) ); }; reader.readAsBinaryString(file); // 异步按字节读取文件内容,结果为文件的二进制串 }); }, file3cex(obj) { var data = obj.map((el) => { if (this.testingData(el)) { let obj = {}; obj.name = el.学生姓名; if (el.学生性别 == "男") { obj.sex = 1; } else { obj.sex = 2; } obj.age = el.年龄; obj.studentNumber=el.学号; obj.role = 3; obj.phone = el.联系电话; obj.address = el.家庭住址; obj.account = el.学生账号; obj.password = el.学生密码; obj.remark = el.备注; obj.classId = this.classId; obj.flag = 0; obj.cardId = el.身份证号; return obj; } }); var addDate = []; for (var j = 0; j < data.length; j++) { if (data[j] != undefined) { var zh = new String(data[j].account); var mm = new String(data[j].password); if (zh.length >= 6 && mm.length >= 6) { addDate.push(data[j]); } } } if (addDate.length > 0) { const res = new Map(); //根据属性去重 var studata = addDate.filter( (a) => !res.has(a.account) && res.set(a.account, 1) ); var info = ""; for (var m = 0; m < studata.length; m++) { info = info + "--" + studata[m].name; } this.axios .batchStudentInfo(studata) .then((res) => { if (res.data.code == 101) { if (res.data.data > 0) { this.$notify({ title: "数据导入提示", message: "成功导入" + studata.length + "条学生数据(" + info + ")。" + (data.length - studata.length) + "条学生数据导入失败!!", duration: 0, }); } else { this.$message({ type: "error", message: "学生数据导入失败!!", }); } } else { this.$message({ type: "error", message: res.data.message, }); } }) .then((err) => {}); } else { this.$message({ type: "info", message: "导入的学生数据异常导入失败!!", }); } }, testingData(obj) { var state = true; if ( obj.学生姓名 == "" || obj.学生姓名 == null || obj.学生姓名 == undefined ) { state = false; } else if ( obj.学生性别 == "" || obj.学生性别 == null || obj.学生性别 == undefined ) { state = false; } else if (obj.年龄 == "" || obj.年龄 == null || obj.年龄 == undefined) { state = false; } else if ( obj.学生账号 == "" || obj.学生账号 == null || obj.学生账号 == undefined ) { state = false; } else if ( obj.学生密码 == "" || obj.学生密码 == null || obj.学生密码 == undefined ) { state = false; } return state; }, //格式化json文件 formatJson(filterVal, jsonData) { //filterVal是data中list的key值 return jsonData.map((v) => filterVal.map((j) => v[j])); //list可能为空,所以报错map未定义 },
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ぼ缺氧ぺ乖張 普通会员 1楼

      在Excel文件上传问题中,最常见的问题是文件过大导致上传失败。为了解决这个问题,你可以尝试以下几种方法:

      1. 限制文件大小:你可以在Excel中设置文件上传的最大大小。在文件属性中,选择“文件大小”选项,然后调整最大值。

      2. 使用压缩工具:如果你需要上传的文件非常大,你可以使用压缩工具来减小文件大小。你可以使用像WinZip或7-Zip这样的工具来压缩你的Excel文件。

      3. 使用外部存储:如果你的Excel文件非常大,你可能需要将其存储在外部存储设备(如USB驱动器或云存储服务)中。这样,你可以随时随地访问文件。

      4. 重新考虑你的需求:如果你发现你的Excel文件太大,你可能需要重新考虑你的需求。如果你只是偶尔需要访问这些文件,那么可能不需要购买或存储那么大的文件。

      5. 优化Excel文件:你可以通过优化Excel文件来减小文件大小。例如,你可以使用Excel的“文件”选项卡中的“另存为”功能,选择一个较小的文件格式,或者删除一些不需要的文件。

      6. 使用云存储:如果你的Excel文件非常大,你可能需要将其存储在云存储服务中。这样,你可以随时随地访问文件,而且可以节省大量的存储空间。

    • 心,你有多疼 普通会员 2楼

      在Excel文件上传问题中,最常见的问题是文件过大导致上传失败。为了解决这个问题,你可以尝试以下几种方法:

      1. 限制文件大小:你可以在Excel中设置文件上传的最大大小。在文件属性中,选择“文件大小”选项,然后调整最大值。

      2. 使用压缩工具:如果你需要上传的文件非常大,你可以使用压缩工具来减小文件大小。你可以使用像WinZip或7-Zip这样的工具来压缩你的Excel文件。

      3. 使用外部存储:如果你的Excel文件非常大,你可能需要将其存储在外部存储设备(如USB驱动器或云存储服务)中。这样,你可以随时随地访问文件。

      4. 重新考虑你的需求:如果你发现你的Excel文件太大,你可能需要重新考虑你的需求。如果你只是偶尔需要访问这些文件,那么可能不需要购买或存储那么大的文件。

      5. 优化Excel文件:你可以通过优化Excel文件来减小文件大小。例如,你可以使用Excel的“文件”选项卡中的“另存为”功能,选择一个较小的文件格式,或者删除一些不需要的文件。

      6. 使用云存储:如果你的Excel文件非常大,你可能需要将其存储在云存储服务中。这样,你可以随时随地访问文件,而且可以节省大量的存储空间。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部