vue 前端excel表格导入和导出,Element + xlsx 组件

2024-06-04 4293阅读

前端需要导入表格进行数据匹配,并进行表格导出,感谢很多大佬的文章分享,有不对的地方欢迎大家指正。

Element  + xlsx 

安装命令  npm install xlsx 
页面引入  import XLSX from 'xlsx'

一、excel表格导入到表格

  
    工具
		
      
        
          
            
              导入数据
            
            {{formName}}
            
          
          
            
              
              
                
              
            
          
        
      
    
  


import XLSX from 'xlsx'
export default {
    data(){
      return {
        // 表格
        fileList:[],
        tableData: [],
        dataName:[],//表格header
        formName:'',//导入的表格名
      }
    },
    created(){
    },
    methods:{
      
      // 导入表格数据
      handleChange(file) {
        const _this = this
        _this.tableData = []
        _this.fileName = file.name;
        _this.formName = file.name;
        const reader = new FileReader();
        //提取excel中文件内容
        reader.readAsArrayBuffer(file.raw);
        reader.onload = function () {
            const buffer = reader.result;
            const bytes = new Uint8Array(buffer);
            const length = bytes.byteLength;
            let binary = "";
            for (let i = 0; i  {
                _this.tableData.push(i);
            });
            _this.dataName = Object.keys(_this.tableData[0]);//获取抬头
        };
      },
      
}



二、表格数据导出成excel

此处参考Vue中如何进行数据导出与Excel导出?_vue导出excel文件-CSDN博客;

中间一定更要记得引xlsx;

这边的数据是固定的,如果想改成动态的,可以自己写循环替代map方法;

  
    导出数据
  


import XLSX from 'xlsx'
export default {
  data() {
    return {
      tableData: [
        { name: '张三', age: 18, gender: '男' },
        { name: '李四', age: 20, gender: '女' },
        { name: '王五', age: 22, gender: '男' }
      ]
    }
  },
  methods: {
    exportData() {
      const XLSX = require("xlsx");
      const headers = ['姓名', '年龄', '性别']
      const data = this.tableData.map(item => [item.name, item.age, item.gender])
      const worksheet = XLSX.utils.aoa_to_sheet([headers, ...data])
      const workbook = XLSX.utils.book_new()
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1')
      XLSX.writeFile(workbook, 'data.xlsx')
    }
  }
}


    免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

    目录[+]