话不多说直接上代码
先安装xlsx npm install xlsx -S
<input @change="getUploadFile" type="file" class="inputDevice"/>
getUploadFile(e){
console.log('数据改变',e);
let fileName = e.target.files[0]
let reader = new FileReader();
reader.readAsBinaryString(fileName)
//onload在文件被读取时自动触发
reader.onload = (e)=> {
let workbook = XLSX.read(e.target.result, {type: 'binary'})
console.log(workbook);
let startData = workbook.Sheets
let sheetList = workbook.SheetNames
//存放json数组格式的表格数据
sheetList.forEach(item=> {
let worksheet = workbook.Sheets[item]
let json = XLSX.utils.sheet_to_json(workbook.Sheets[item])
this.resultJson = json
});
console.log(this.resultJson);
var keyMap = {
"*城市": "city",
"*媒体": "media_name",
"*屏幕大小(宽*高)":"wh",
"*屏幕尺寸":"size",
"*操作系统":"os",
"*最佳分辨率": "pixel",
"*省份": "province",
"*联网方式": "wifi/4G",
"*行政区": "district",
"*设备开机时间": "time",
"*设备类型": "device_type",
"*设备编号": "device_sn",
"*详细地址": "address",
"*账号": "user_id",
"*场景": "scene_name"
}
var a =[]
for (var item of this.resultJson) {
var b = {};
for (var key in item) {
if (keyMap[key] === 'wh') {
b[keyMap[key]] = item[key].split('*')
b['width'] =b[keyMap[key]][0]
b['height']=b[keyMap[key]][1]
}
if(keyMap[key] === 'time'){
b[keyMap[key]] = item[key].split('-')
b['begin_time'] =b[keyMap[key]][0]
b['end_time'] = b[keyMap[key]][1]
}
b[keyMap[key]] = item[key]
}
a.push(b)
}
api.storage('importData',a)
console.log(api.storage('importData'),'1111');
this.import()
}
},
import(){
console.log('2222');
console.log(api.storage('importData'),'3333');
let importData =api.storage('importData')
api.postJson(this, 'ad/device/import', importData, (res) => {
if(res.data.data.error_arr.length==0){
this.getList(this.params)
}else{
this.$Message.warning('导入设备失败,请检查表格格式')
}
})
},