上次完成了通过SheetJS读取excel中数据并转为Json数组对象传递到后端实现批量导入功能。但是遗留下一个问题,就是表中的表头使用的是英文,非常的不方便,于是这次进行了改进。

导入的代码就不写了。主要是一个中英文转换的代码

既然要进行转换的是表头,想法是转换json数组对象,然后对json数组对象进行操作。在读到一个Sheet,并通过 XLSX.utils.sheet_to_json转为json对象之后进行转换

核心代码如下:

 weldmachine = XLSX.utils.sheet_to_json(workbook.Sheets[sheet], { range: 1 });
//中英文映射
var columnMapping = {'设备编号': 'machineNo','设备品牌': 'machineBrand','技术参数': 'techParams','备注': 'comment'
};//string类型var jsonArrary = JSON.stringify(weldmachine); //是从一个对象中解析出字符串//object类型var excel = JSON.parse(jsonArrary);   //用于将一个 JSON 字符串转换为对象var newrows = [];//中英文转换weldmachine.forEach(function (row) {var newRow = {};Object.keys(row).forEach(function (key) {//要是能在colmnMapping[key]中找到对应的英文,则变成对应的数据,否则还是用原来的newRow[columnMapping[key] || key] = row[key];                       })return newrows.push(newRow);
});

这里详细讲解一下newRow[columnMapping[key] || key] = row[key];

  1. nameMap 是一个包含中英文属性名映射关系的对象,例如 { '姓名': 'name', '年龄': 'age', '性别': 'gender' }
  2. key 是当前遍历到的属性名。
  3. nameMap[key] 表示将 keynameMap 对象中查找对应的英文属性名,如果找到了,那么返回这个英文属性名,否则返回 undefined
  4. || 表示逻辑或运算符,它的优先级比赋值运算符低。当 nameMap[key] 返回 undefined 时,逻辑或运算符会返回 key
  5. newRow[nameMap[key] || key] 表示将转换后的英文属性名或原属性名作为 newRow 对象的属性名。
  6. row[key] 表示获取 row 对象中当前属性名对应的属性值。
  7. = 表示赋值运算符,将 row[key] 的值赋给 newRow[nameMap[key] || key]

因此,这个语句的作用是将 row 对象中的属性名从中文转换为英文,并将转换后的属性名和属性值存储在 newRow 对象中。如果属性名没有在 nameMap 对象中找到对应的英文属性名,那么将使用原属性名作为英文属性名。

这里需要将转为英文后的数据保存到一个新的数组里,所以有newrows[],否则下次读取就会覆盖掉newRow[ ]
实际读取的数据:

想要传递到后端的数据(转换后):


将newRow序列化之后,通过ajax请求向后端发送数据,后端进行反序列化后做响应处理即可。
最后是成功导入。
如果有更好的方法,欢迎大佬提出!!!!

实现SheetJS读取excel表格数据并将表头中文转英文相关推荐

  1. python读取excel表格数据

    python操作excel主要用到xlrd和xlwt两个库,xlrd读取表格数据,支持xlsx和xls格式的excel表格:xlwt写入excel表格数据 一.python读取excel表格数据 1. ...

  2. python 如何读取excel表格数据

    文章目录 前言 python 读取excel 表格 前言 如何用python读取excel表格数据呢 ? python 读取excel 表格 首先需要配置好环境,需要下载 xlrd 包: # 如果不指 ...

  3. 读取EXCEL表格数据到MATLAB成为矩阵

    读取EXCEL表格数据到MATLAB成为矩阵 data=xlsread('filename','sheet','range') 其中,'filename'为文件路径及文件名,'sheet'为数据表名称 ...

  4. Qt之如何读取Excel表格数据

    Qt之如何读取Excel表格数据 概述: 代码示例: .pro: 需要包含的头文件: readExcelData.h: readExcelData.cpp: over: 概述: 大家好我是背锅侠&qu ...

  5. Matlab中读取excel表格数据

    一:Matlab中读取excel表格数据步骤讲解: 第二步:  第三步:  第四步:  第五步:  第六步    第七步:  输入之后按回车键,就会出现相应的波形: 效果图:

  6. linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据

    Qt 读取Excel表格数据 生成Excel表格并写入数据 Qt 读取Excel表格数据 生成Excel表格并写入数据 修改.pro文件,增加 axcontainer QT += axcontaine ...

  7. 使用最新的poi-4.1.0.jar导入导出Excel表格——读取Excel表格数据用法

    使用最新的poi-4.1.0.jar导入导出Excel表格--读取Excel表格数据用法 其中主要的一点心得就是在switch语句哪里进行读取数据转换时,我看到网上的一些用法都是使用 HSSFCell ...

  8. pandas使用read_excel函数读取excel表格数据为dataframe、设置sheet_name参数为表单索引位置列表则读取多个表单的数据并返回dataframe字典

    pandas使用read_excel函数读取excel表格数据为dataframe.使用sheet_name参数指定读取excel表格中指定的sheet表单.设置sheet_name参数为表单索引位置 ...

  9. 拒绝“累丑”,告别加班,一键读取Excel表格数据自动录入至网页

    朗思RPA:读取Excel表格数据自动录入到网页 朗思无代码RPA社区版可永久免费下载体验~ 零代码,易学易操作,可视化界面,全中文化支持,助力企业数字化转型,让员工工作更高效!

最新文章

  1. oracle错误15260,【案例】Oracle报错ORA-00600 2663 产生的原因和解决办法
  2. android 百度悬浮搜索框,百度的搜索框效果如何实现的???
  3. Java《剑指Offer》面试题2:替换空格
  4. 定义装运点(shipping point)
  5. android7.1开机监听广播,Android7.1 Audio Debug相关方法
  6. 数据库经典DB2在技术前沿展现王者风范
  7. Java笔记-使用System.gc()进行内存回收
  8. 最新小白详细描述在centos7.5上安装python3并使用Nginx+virtualenv+supervisor来部署tornado项目(整理集合结合实际)系列2
  9. mysql存储过程迭代自己获取所有子孙
  10. wordpress直接处理$_post_实战:Drupal迁移到WordPress
  11. 大数据处理方面的 7 个开源搜索引擎
  12. CSDN账号找回密码的解决方法(原手机号不能使用)
  13. linux网桥配置brctl
  14. 声卡接口Line in、Line out、Mic in和Speak out
  15. 语音社交系统源码中实时音频常见问题分析和解决:延时和抖动
  16. 2021年茶艺师(中级)考试内容及茶艺师(中级)操作证考试
  17. matlab最炫名族风,Matlab演奏《最炫民族风》
  18. Unity 3D数学 — 向量运算
  19. 联想计算机网络唤醒是怎么回事,笔记本开启网络唤醒功能设置的操作方法
  20. 论 $*、$@、$*、$@的区别

热门文章

  1. MO,MT,Linkid的关系是什么
  2. WIN10忘记账号密码,拥有PIN码或指纹解锁,如何修改密码?
  3. 怎么在电脑上玩风之大陆 风之大陆电脑版玩法教程
  4. 2023新华为OD机试题 - 相同数字的积木游戏 1(JavaScript)
  5. 【PS】PS扣印章|改颜色方法
  6. 想进入互联网领域发展,是否该从电子信息工程专业考研到计算机
  7. 1688api各种接口详情及返回值说明
  8. 【Python茴香豆系列】之 字典合并
  9. 3D建模软件中如何进行装配设计?
  10. 游戏研发的黄金年代真的来了吗?