vue 解析xlsx并表格预览

npm install xlsx
var
XLSX = require('xlsx')
data() {
    preview(url) {
      let that = this
      const loading = this.$loading({
        lock: true,
        text: '表格解析中',
        spinner: 'el-icon-loading',
        customClass: 'loadingClass',
      })
      axios
        .get(
          url,
          {
            responseType: 'arraybuffer', // 设置响应体类型arraybuffer
          }
        )
        .then(({ data }) => {
          let workbook = XLSX.read(new Uint8Array(data), { type: 'array' }) // 解析数据
          console.log('🚀 ~ file: importData.vue:102 ~ .then ~ data', data)
          let worksheet = workbook.Sheets[workbook.SheetNames[0]] // workbook.SheetNames 下存的是该文件每个工作表名字,这里取出第一个工作表
          /*   this.tableau = XLSX.utils.sheet_to_html(worksheet) // 渲染 */
          var outdata = XLSX.utils.sheet_to_json(worksheet) // 渲染
          that.excelData = outdata
          that.tableData = outdata
          that.total = outdata.length
          // 获取数据的key
          var importDataThead = Array.from(Object.keys(outdata[0])).map((item) => {
            return item
          })
          that.columnHeader = importDataThead
          // that.checkboxTableColumn = importDataThead.slice(0, 9)  分页功能
          that.checkboxTableColumn = importDataThead
    
        })
    },

 

return {
      columnHeader: [], //所有键的值
      excelData: [], // 导入的excel的数据
      checkboxTableColumn: [], // 表格显示列
      tableData: [], //表格数据
      total: 0, /* // 数据总数 */
    }
  },

 

posted @ 2023-02-20 17:12  风一样的猿  阅读(1403)  评论(0编辑  收藏  举报