Excel2json.js 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. /* eslint-disable no-return-await */
  2. /* eslint-disable camelcase */
  3. import XLSX from 'xlsx'
  4. /**
  5. * excel文件转json数据
  6. */
  7. class Excel2JsonService {
  8. /**
  9. * 解析excel表格
  10. * @param {File} file 文件
  11. */
  12. async export2excel(file) {
  13. return await new Promise((resolve, reject) => {
  14. try {
  15. const reader = new FileReader()
  16. reader.onload = (e) => {
  17. const wb = XLSX.read(e.target.result, {
  18. type: 'binary'
  19. }) // 读取完成的数据
  20. // 转成json header解析第一行标题
  21. const data = XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]], { header: 1 })
  22. resolve(data)
  23. }
  24. reader.readAsBinaryString(file)
  25. } catch (error) {
  26. console.log('解析错误')
  27. reject(error)
  28. }
  29. })
  30. }
  31. /**
  32. * 解析后的浮点数转时间戳
  33. * @param num 时间浮点
  34. */
  35. number2times(num) {
  36. const utc_value = (num - 25569) * 86400
  37. const date_info = new Date(utc_value * 1000).getTime()
  38. const newtime = (date_info - 8 * 3600 * 1000)
  39. return newtime
  40. }
  41. }
  42. export default new Excel2JsonService()