如何在VueJS项目的网络工作者中读取Excel文件

时间:2019-11-12 19:48:11

标签: excel vue.js asynchronous web-worker

目前,我有一个具有 150,000 + 行和多张工作表的Excel文件,并且我正在使用 read-excel-file 库读取同步文件。 strong>浏览器被卡住了!所以我想把负载推到另一个线程上,以便主线程可以完美地呈现UI,这就是为什么我要为此使用Web-Worker的原因,目前我在 VueJs 项目中,并且找到了一个网络工作者的库 vue-worker ,但出现此错误,找不到任何解决方案。

  

错误:无法在'Worker'上执行'postMessage':function readXlsxFile(file){...

这是它的一个微型示例: 网址:Persistence Ignorance Principle

<template>
  <div id="app">
    <input type="file" @change="onFIleChange">
  </div>
</template>

<script>
import readXlsxFile from "read-excel-file";

export default {
  name: "App",
  components: {},
  data: () => {
    return {
      file: null,
      rows: null
    };
  },

  methods: {
    onFIleChange(e) {
      this.file = e.target.files[0];

      this.$worker
        .run(
          (file, readXlsxFile) => {
            return readXlsxFile(file);
          },
          [this.file, readXlsxFile]
        )
        .then(rows => {
          this.rows = rows;
          console.log(this.rows);
        })
        .catch(e => {
          console.error(e);
        });
    }
  }
};
</script>

<style>
</style>

0 个答案:

没有答案