Excel表格上传解析与导出

一、下载依赖
npm install xlsx -D

二、Excel表格上传解析
// 上传excel
async handle(ev) {
let file = ev.raw
if (!file) return

  // 读取file的数据
  let data = await this.readFile(file)
  let workbook = xlsx.read(data, { type: "binary" })
  let worksheet = workbook.Sheets[workbook.SheetNames[1]]
  data = xlsx.utils.sheet_to_json(worksheet)

  // 把读取出来的数据变为最后可以传递给服务器的数据
  let arr = []
  data.forEach(item => {
    let obj = {}
    for(let key in this.character) {
      if (!this.character.hasOwnProperty(key)) break
      let v = this.character[key],
          text = v.text,
          type = v.type
      v = item[text] || ''
      type === 'string' ? (v = String(v)) : null
      type === 'number' ? (v = Number(v)) : null
      obj[key] = v
    }
    arr.push(obj)
  });
},
// 把文件进行二进制读取
readFile(file) {
  return new Promise(resolve => {
    let reader = new FileReader()
    reader.readAsBinaryString(file)
    reader.onload = ev => {
      resolve(ev.target.result)
    }
  })
}

三、Excel导出
// 数据导出
exportData() {
let arr = this.list.map(item => {
return {
‘空间编码’: item.title1,
‘空间名称’: item.title2,
‘空间别称’: item.title3,
‘空间类型名称’: item.title4,
‘项目名称’: item.title5,
‘空间位置’: item.title6,
‘楼层名称’: item.title7,
‘朝向’: item.title8,
‘内外’: item.title9,
‘交付日期’: item.title10,
‘是否黏贴二维码’: item.title11,
‘移交日期’: item.title12,
‘是否移交供电局管理’: item.title13,
‘数据状态’: item.title14,
}
})
let sheet = xlsx.utils.json_to_sheet(arr),
book = xlsx.utils.book_new()
xlsx.utils.book_append_sheet(book, sheet, ‘公共空间’)
xlsx.writeFile(book, user${new Date().getTime()}.xls)
console.log(’【arr】:’, arr)
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值