实现SheetJS读取excel表格数据并将表头中文转英文
上次完成了通过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];
nameMap
是一个包含中英文属性名映射关系的对象,例如{ '姓名': 'name', '年龄': 'age', '性别': 'gender' }
。key
是当前遍历到的属性名。nameMap[key]
表示将key
在nameMap
对象中查找对应的英文属性名,如果找到了,那么返回这个英文属性名,否则返回undefined
。||
表示逻辑或运算符,它的优先级比赋值运算符低。当nameMap[key]
返回undefined
时,逻辑或运算符会返回key
。newRow[nameMap[key] || key]
表示将转换后的英文属性名或原属性名作为newRow
对象的属性名。row[key]
表示获取row
对象中当前属性名对应的属性值。=
表示赋值运算符,将row[key]
的值赋给newRow[nameMap[key] || key]
。
因此,这个语句的作用是将 row
对象中的属性名从中文转换为英文,并将转换后的属性名和属性值存储在 newRow
对象中。如果属性名没有在 nameMap
对象中找到对应的英文属性名,那么将使用原属性名作为英文属性名。
这里需要将转为英文后的数据保存到一个新的数组里,所以有newrows[]
,否则下次读取就会覆盖掉newRow[ ]
实际读取的数据:
想要传递到后端的数据(转换后):
将newRow序列化之后,通过ajax请求向后端发送数据,后端进行反序列化后做响应处理即可。
最后是成功导入。
如果有更好的方法,欢迎大佬提出!!!!
实现SheetJS读取excel表格数据并将表头中文转英文相关推荐
- python读取excel表格数据
python操作excel主要用到xlrd和xlwt两个库,xlrd读取表格数据,支持xlsx和xls格式的excel表格:xlwt写入excel表格数据 一.python读取excel表格数据 1. ...
- python 如何读取excel表格数据
文章目录 前言 python 读取excel 表格 前言 如何用python读取excel表格数据呢 ? python 读取excel 表格 首先需要配置好环境,需要下载 xlrd 包: # 如果不指 ...
- 读取EXCEL表格数据到MATLAB成为矩阵
读取EXCEL表格数据到MATLAB成为矩阵 data=xlsread('filename','sheet','range') 其中,'filename'为文件路径及文件名,'sheet'为数据表名称 ...
- Qt之如何读取Excel表格数据
Qt之如何读取Excel表格数据 概述: 代码示例: .pro: 需要包含的头文件: readExcelData.h: readExcelData.cpp: over: 概述: 大家好我是背锅侠&qu ...
- Matlab中读取excel表格数据
一:Matlab中读取excel表格数据步骤讲解: 第二步: 第三步: 第四步: 第五步: 第六步 第七步: 输入之后按回车键,就会出现相应的波形: 效果图:
- linux qt写入excel文件内容,Qt 读取Excel表格数据 生成Excel表格并写入数据
Qt 读取Excel表格数据 生成Excel表格并写入数据 Qt 读取Excel表格数据 生成Excel表格并写入数据 修改.pro文件,增加 axcontainer QT += axcontaine ...
- 使用最新的poi-4.1.0.jar导入导出Excel表格——读取Excel表格数据用法
使用最新的poi-4.1.0.jar导入导出Excel表格--读取Excel表格数据用法 其中主要的一点心得就是在switch语句哪里进行读取数据转换时,我看到网上的一些用法都是使用 HSSFCell ...
- pandas使用read_excel函数读取excel表格数据为dataframe、设置sheet_name参数为表单索引位置列表则读取多个表单的数据并返回dataframe字典
pandas使用read_excel函数读取excel表格数据为dataframe.使用sheet_name参数指定读取excel表格中指定的sheet表单.设置sheet_name参数为表单索引位置 ...
- 拒绝“累丑”,告别加班,一键读取Excel表格数据自动录入至网页
朗思RPA:读取Excel表格数据自动录入到网页 朗思无代码RPA社区版可永久免费下载体验~ 零代码,易学易操作,可视化界面,全中文化支持,助力企业数字化转型,让员工工作更高效!
最新文章
- oracle错误15260,【案例】Oracle报错ORA-00600 2663 产生的原因和解决办法
- android 百度悬浮搜索框,百度的搜索框效果如何实现的???
- Java《剑指Offer》面试题2:替换空格
- 定义装运点(shipping point)
- android7.1开机监听广播,Android7.1 Audio Debug相关方法
- 数据库经典DB2在技术前沿展现王者风范
- Java笔记-使用System.gc()进行内存回收
- 最新小白详细描述在centos7.5上安装python3并使用Nginx+virtualenv+supervisor来部署tornado项目(整理集合结合实际)系列2
- mysql存储过程迭代自己获取所有子孙
- wordpress直接处理$_post_实战:Drupal迁移到WordPress
- 大数据处理方面的 7 个开源搜索引擎
- CSDN账号找回密码的解决方法(原手机号不能使用)
- linux网桥配置brctl
- 声卡接口Line in、Line out、Mic in和Speak out
- 语音社交系统源码中实时音频常见问题分析和解决:延时和抖动
- 2021年茶艺师(中级)考试内容及茶艺师(中级)操作证考试
- matlab最炫名族风,Matlab演奏《最炫民族风》
- Unity 3D数学 — 向量运算
- 联想计算机网络唤醒是怎么回事,笔记本开启网络唤醒功能设置的操作方法
- 论 $*、$@、$*、$@的区别