使用papaparse插件来进行对.csv文件的导入,再结合element ui的表格来显示文件中的数据。

1.安装papaparse的依赖

1.npm install papaparse

2.在页面中引用

import Papa from 'papaparse';

3.使用
papaparse的调用形式

  Papa.parse(file, {
    complete: function(results) {
      console.log(results);//返回的csv的数据
    }
  });

3.1首先创建按钮事件,并选择只接受.csv的文件类型以及表格

<el-upload
    class="upload-demo"
    action=""
    :on-change="handleChange"
    :on-exceed="handleExceed"
    :on-remove="handleRemove"
    :file-list="fileListUpload"
     accept=".csv"
     :auto-upload="false">
     <el-button size="small" type="primary">点击上传</el-button>
     </el-upload>
<el-table :data="tableData" border style="width: 50%"
          :header-cell-style="{background:'#EEF6FD',color:'#251E25'}" slot="empty">
           <el-table-column prop="number" label="#" width="50%" align="center"></el-table-column>
           <el-table-column prop="name" label="字段名" align="center"></el-table-column>
           <el-table-column prop="nameRemark" label="备注名" align="center"></el-table-column>
           <el-table-column prop="index" label="索引字段" align="center"></el-table-column>
    </el-table>
//data中的数据
     data(){
     	return{
      	fileTemp: null,
        fileListUpload: [],
        tableData: [],
     }
     }
      

3.2编写上传事件的内容

handleChange(file, fileList) {
 	this.fileTemp = file.raw
   	if (this.fileTemp) {
      	if ((this.fileTemp.type == '.csv') || (this.fileTemp.type == 'application/vnd.ms-excel')) {
        this.importcsv(file.raw)
    	} else {
       	this.$message({
         	type: 'warning',
          	message: '附件格式错误,请删除后重新上传!'
       	 })
     	}
   	} else {
    	this.$message({
   			type: 'warning',
            message: '请上传附件!'
        	})
  		}
},

3.3调用导入的方法

importcsv (obj) {
        let _this = this//如果需要点击事件结束之后对DOM进行操作使用)_this.xx=xx进行操作
        Papa.parse(obj, {
          complete (results) {
            console.log(results)//这个是csv文件的数据
            let data = []
            //遍历csv文件中的数据,存放到data中 方法不唯一,可自己更改
            for (let i = 0; i < results.data.length; i++) {
              let obj = {}
              obj.number = results.data[i][0]
              obj.name = results.data[i][1]
              obj.nameRemark = results.data[i][2]
              obj.index = results.data[i][3]
              data.push(obj)
            }
            data.splice(0, 1)//将数组第一位的表格名称去除
            let num = 0
            console.log('data', data)
            _this.tableData = data//将数据放入要展示的表格中
          }
        })
      },

4.结果
初始状态:
在这里插入图片描述
最终结果:
在这里插入图片描述
以上就是vue结合element ui和papaparse实现导入csv文件的方法,如果觉得有用请多多关注点赞,博主会分享自己使用的过程中遇到的难点问题,大家共同进步!

附:.csv文件内容

#,字段名,备注名,索引字段
1,txid,交易流水号,2,time,交易时间,3,txps,交易人,4,good,货物,
Logo

前往低代码交流专区

更多推荐