当前位置:首页 > 经验笔记 > javascript > 正文内容

JS/VUE按钮点击excel上传文件解析文件内容

han32685个月前 (08-19)javascript846

代码如示

    import * as XLSX from 'xlsx'; // 导入xlsx库


    importFile() {
      const fileType = ['xlsx', 'xls']
      const inputFile = document.createElement('input')
      inputFile.type = 'file'
      inputFile.style.display = 'none'
      inputFile.accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel"
      document.body.appendChild(inputFile)
      inputFile.click()

      inputFile.addEventListener('change',  () => {
        const file = inputFile.files[0]
        var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1)

        if (!fileType.includes(testmsg)) {
          this.$message.warning('上传的文件格式只能是,xlsx,xls')
          document.body.removeChild(inputFile)
          return false
        }
        //读取xlsx文件数据转换成js数据

        const reader = new FileReader();
        reader.onload = (e) => {
          const data = e.target.result;
          const workbook = XLSX.read(data, { type: 'binary' });

          // 假设第一个工作表是我们需要的数据
          const firstSheetName = workbook.SheetNames[0];
          const worksheet = workbook.Sheets[firstSheetName];

          // 将工作表转换为JSON
          const json = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
         
          // 处理JSON数据
          console.log('json',json);
          // 这里可以对json进行进一步处理,例如展示在界面上
         
          document.body.removeChild(inputFile); // 清除临时创建的input元素
        };
        reader.onerror = (err) => {
          console.error('Error reading file:', err);
          document.body.removeChild(inputFile);
        };
        reader.readAsBinaryString(file);

      })
    },


扫描二维码推送至手机访问。

版权声明:本文由瀚文博客发布,如需转载请注明出处。

本文链接:https://hanwenblog.com/post/107.html

分享给朋友:

相关文章

TypeError: Cannot read properties of undefined (reading 'utils')

解决XLSX 导出报错把import XLSX from 'xlsx'变成import * as XLSX fro...

JS/VUE按钮点击上传文件

直接上代码    importFile() {       const fil...

Echarts图表的悬浮框位置的调整

下面的代码实现了悬浮框的位置不会超出界面 最多在离界面边缘5px的地方tooltip: {         ...

判断echart实例是否已经存在,如果不存在,就进行初始化

      var myChart = echarts.getInstanceByDom(chartDom)...

echarts 第三方实例

一.前言。众所周知,在现今的开发大环境下,数据可视化(大屏化)项目在前端开发中的比重越来越大。而其中使用率最高的插件无疑就是 Apache Echarts。(ps: 以下简称为echarts)。本文就...