需求:将表格内容作为list集合,向后端传递
注意:需求默认展示表格为30行空表格,后端接口会拦截空值,所以需将未输入的行去掉
默认的Jspreadsheet :
实现步骤:
获取Jspreadsheet 数据并处理成后端所需参数格式:
var tabdata = this.spreadsheet.options.data //打印表格原始数据如下图1-1
var Data = []
var newArr = []
tabdata.map((v, i) => { //这里利用几层循环将数据变成list集合,并修改key值,打印如1-2
var obj = {}
tabdata[i].forEach((item, index) => {
obj[index] = item
})
Data.push(obj)
newArr = Data.map(item => ({
alNum: item['0'],
width: parseInt(item['1']),
height: parseInt(item['2']),
thick: parseInt(item['3']),
number: parseInt(item['4']),
unitPrice: item['5'],
chartNo: item['6'],
surfaceTreatment: item['7'],
color: item['8'],
remark: item['9'],
installPosition: item['10'],
measure: parseInt(item['11']),
amount: parseInt(item['12'])
}))
var deleteNullObj = function(arr) {//此方法判断第一列值为空,则去掉该行
for (let i = 0; i < arr.length; i++) {
if ((arr[i]['alNum']) === '') {
arr.splice(i, 1)
i--
}
}
return arr
}
deleteNullObj(newArr) //用户输入一行数据,打印结果如1-3
部分图示:
1-1:
1-2:
1-3:
此处做示范输入一条,其他空行自动去除。
注:表格引入方法可查看上一条文章-----由于本人也是边学习边开发,方法比较老套,欢迎指点!!!
Jspreadsheet CE功能持续更新中…