导入excel并进行数据提取

/**
         * @description: 导入excel并进行数据提取
         * @param {type}
         * @return:
         */
        Vue.prototype.$importExcel = function (file, header) {
            let _this = this;
            return new Promise(function (resolve, reject) {
                const types = file.name.split(‘.‘)[1]
                const fileType = [‘xlsx‘, ‘xlc‘, ‘xlm‘, ‘xls‘, ‘xlt‘, ‘xlw‘, ‘csv‘].some(item => item === types)
                if (!fileType) {
                    _this.$message({
                        type: "warning",
                        message: "文件格式不正确,请重新选择!"
                    });
                    reject();
                }
                const reader = new FileReader();
                reader.onload = function (e) {
                    const data = e.target.result;
                    this.wb = XLSX.read(data, {
                        type: "binary"
                    });
                    const wsname = this.wb.SheetNames[0];
                    const ws = this.wb.Sheets[wsname];
                    /* Convert array of arrays */
                    const sheetJson = XLSX.utils.sheet_to_json(ws);
                    let tableData = []; //转换为真正的table所需要的数据
                    for (let item of sheetJson) {
                        let obj = {};
                        for (let key in item) {
                            for (let childItem of _this.header) {
                                if (key === childItem.label) {
                                    obj[childItem.prop] = item[key];
                                    break;
                                }
                            }
                        }
                        tableData.push(obj);
                    }
                    resolve(tableData);
                };
                reader.readAsBinaryString(file.raw);
            });
        }

  

<template>
  <div>
    <el-upload
      class="upload-demo"
      ref="upload"
      :auto-upload="false"
      :on-change="change"
    >
      <el-button
        style="margin-left: 10px;"
        size="small"
        type="success"
        @click="submitUpload"
      >上传到服务器</el-button>
     </el-upload>
  </div>
</template>
<script>

</script>
import XLSX from "xlsx";
export default {
 methods: {
    submitUpload() {
      this.$refs.upload.submit();
    },
    change(file) {
      this.$importExcel(file, this.header).then(tableData => {
        console.log(tableData);
      });
    },
 }
}

  

原文地址:https://www.cnblogs.com/wangRong-smile/p/11137355.html

时间: 2024-10-09 18:16:06

导入excel并进行数据提取的相关文章

PLSQL导入Excel表中数据

PL/SQL 和SQL Sever导入excel数据的原理类似,就是找到一个导入excel数据的功能项,按照步骤走就是了.下面是一个些细节过程,希望对像我这样的菜鸟有帮助.  www.2cto.com 1.准备excel表. 右击数据表—选择edit data. 选择数据,右击,选择Copy to Excel 2.调整excel表 可以删除A列和F列,然后把你的数据粘到BCDE列,这样做的好处就是在导入excel的时候,绝对不会出现因为格式或其他文字问题导致错误. 3.准备导入 选择tool—O

【代码实现】PHP导入Excel和导出数据为Excel文件

文章来源:PHP开发学习门户 地址:http://www.phpthinking.com/archives/560 有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入.另外将mysql数据导出为Excel与本站上篇文章中导出CSV一样,只是将逗号分割符换成制表符,并修改header信息就可以了. 下载源码 本文中,我们沿用本站文章:使用PHP导入和导出CSV文件 中实例的数据表以及html. 1.导入XL

java easyreport 导入excel、 txt 数据简单实现(一)

一直在看博客,却不知道怎么写,但是总是想写点什么,犹豫了两三天,决定还是写点东西吧,来和大家分享下. 今年上半年时候接到了一个需求,具体什么需求就不说了,要求导入excel数据,并提示每一行错误信息.接到手后,查看之前的导入excel报表的代码,发现只有初始化workBook和根据cell获取cell 字符串值得通用方法.觉得可利用的东西太少了,于是决定就构建一个通用的实现导入excel报表的工具包. 实现思路大致是这样的: 提供模板,模板包含读起始行.属性模板集合.读批次.校验出错中端. 添加

C# 各种导入 Excel 文件的数据的方法总结

在导入之前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码. protected void btnImport_Click(object sender, EventArgs e) { Random random = new Random(); ImportClass Import = new ImportClass(); //保存文件的虚拟路径 string path = "Import/"; //获取选择的文件名 string fi

java easyreport 导入excel、 txt 数据数据格式校验(六)

在大部分情况下我们需要对导入数据的内容.格式进行合法性验证,验证不通过需要我们提示错误信息. 导入xls数据内容 姓名 年龄 科目 分数 王老五 12 语文 80 柯景腾 13 语文 78 沈佳宜 14 语文 88 王小贱 15 语文 60 黄小仙 12 语文 54 李大仁 14 语文 76 程又青 13 语文 58 陈寻 12 语文 67 方茴 12 语文 87 沈晓棠 13 语文 89 林嘉茉 14 语文 68 赵烨 14 语文 50 苏凯 12 语文 78 乔燃 13 语文 90 我们需要

C#各种导入Excel文件的数据的方法总结

在导入前都需要将上传的文件保存到服务器,所以避免重复的写这些代码,先贴出上传文件并保存到服务器指定路径的代码 protected void btnImport_Click(object sender,EventArgs e) { Random random=new Random(); ImportClass Import=new ImportClass(); //保存文件的虚拟路径 string path="Import/"; //获取选择的文件名 string fileName=Fi

使用PHP导入Excel和导出数据为Excel文件

1.导入XLS PHP-ExcelReader这是一个开源的项目,主要是来解析excel的文件,您可以到http://sourceforge.net/projects/phpexcelreader获取最新版的源码.下载之后解压,主要用到excel文件夹里面的两个文件reader.php和oleread.inc. 导入Xls处理流程:选择xls文件->上传xls文件到服务器->通过PHP-ExcelReader解析excel->批量入库.  include_once("excel

java easyreport 导入excel、 txt 数据关联集合置入对象(三)

接上一节,获取的Student关联的Teacher集合有且只有一个,如何置入多个呢. 自定义StudentMatcher实现MatchAbled方法 package matcher; import java.util.List; import java.util.Map; import model.Student; import com.easyReport.read.MatchAbled; public class StudentMatcher implements MatchAbled<St

java easyreport 导入excel、 txt 数据复合属性(二)

在导入报表的时候,经常会遇到对象属性是集合或数组形似的,如学生会有多个老师,那么这种属性是集合或数组形式的报表如何设置,以及导入呢. Teacher类 package model; public class Teacher { private String name; private String sex; public String getName() { return name; } public void setName(String name) { this.name = name; }