AngularJS中如何读取含空格的Excel字段?
解决Excel带空格列名读取及表头忽略问题
嘿,这个问题我之前处理过,咱们分两步来搞定它:
1. 处理带空格的列名访问错误
JavaScript里用点语法访问对象属性时,属性名不能包含空格,这就是你遇到unidentified name错误的核心原因。改用方括号语法就能完美解决这个问题,把带空格的列名用字符串形式放到方括号里就行。
比如你原来的错误写法:
userInfo.userName=userInfo.User Name; // 因空格导致属性无法识别
要改成:
userInfo.userName = userInfo["User Name"]; // 正确访问带空格的列名
同理,处理“User Phone Number”这类带空格的列名时,也是同样的逻辑:
userInfo.userPhoneNumber = userInfo["User Phone Number"];
2. 忽略表头“User Data”
假设这个表头是Excel的第一行,对应读取后数组的第一个元素,我们可以在遍历前用slice(1)跳过第一行,只处理真正的数据行:
修改后的完整代码
//controller.js function userData() { // 跳过第一行表头"User Data" const dataRows = vm.readUserData.slice(1); angular.forEach(dataRows, function(userInfo){ // 用方括号访问带空格的列名 userInfo.userName = userInfo["User Name"]; userInfo.userPhoneNumber = userInfo["User Phone Number"]; // 这里可以继续处理其他字段,或者执行存入数据库的逻辑 }); }
如果表头行的位置不确定,或者表头是某个特定标识,也可以用filter来精准过滤掉表头行,比如:
const dataRows = vm.readUserData.filter(row => !row["User Data"]);
这样就能同时解决空格列名读取错误和表头忽略的问题啦!
内容的提问来源于stack exchange,提问作者GrailsLearner
相关产品推荐
相关产品推荐

