hudieren
# Vue项目中将表格内的数据导出为Excel文件
~~~markdown # 首先安装三个依赖 npm install -S file-saver xlsx npm install -D script-loader # 引入两个js文件 在src目录下新建excel文件夹,里面放入Blob.js和Export2Excel.js两个JS文件

https://blog-static.cnblogs.com/files/blogs/680574/Export2Excel.js

https://blog-static.cnblogs.com/files/blogs/680574/Blob.js

 



# 在main.js引入这两个文件(路径取决你们的路径)【也可以不引用】
    import Blob from "@/excel/Blob"
    import Export2Excel from "@/excel/Export2Excel"
~~~

### 正确设置路径

~~~js
# 在Export2Excel.js文件中正确导入Blob.js文件

require(\'script-loader!file-saver\');
// require(\'script-loader!vendor/Blob\');
require(\'@/excel/Blob\');
require(\'script-loader!xlsx/dist/xlsx.core.min\');
~~~

### 调用export2Excel()方法即可导出为excel

~~~js
export2Excel() {
      require.ensure([], () => {
        const { export_json_to_excel } = require(\'@/excel/Export2Excel\');
        // 设置Excel的表格第一行的标题
        const tHeader = [];
        const filterVal = this.singleKeys;
        for (let i = 0; i < filterVal.length; i++) {
          let v = this.singleNames[filterVal[i]];
          tHeader.push(v)
        }

        const list = this.tableData;  //把data里的tableData存到list
        const data = this.formatJson(filterVal, list);
        export_json_to_excel(tHeader, data, \'列表excel\');
      })
    },
    formatJson(filterVal, jsonData) {
      return jsonData.map(v => filterVal.map(j => v[j]))
    },
~~~

# Vue项目中将表格内的数据导出为Word文件

~~~markdown
npm install -g cnpm --registry=https://registry.npm.taobao.org

# cnpm install docxtemplater pizzip
    https://docxtemplater.readthedocs.io/en/latest/generate.html

# cnpm install jszip-utils --save
    https://stuk.github.io/jszip/

# cnpm install jszip --save

# cnpm install file-saver --save

~~~

# Vue下载文件

~~~markdown
exportWord () {
      this.$axios({
        method: \'get\',
        url: this.$settings.HOST + "media/upload/张三.docx",
        // headers里面设置token
        headers: {
          // \'Content-Type\': \'application/json\',
          // "token":window.sessionStorage.getItem(\'token\')
        },
        data: {
        },
        // 二进制流文件,一定要设置成blob,默认是json
        responseType: \'blob\'

      }).then(res => {
        console.log(res)
        if(!res.data){
          return
        }
        var name = "hehehe.docx";
        // var name = this.date + "月" + this.departmentName +"销售分析统计.xls";
        var blob = new Blob([res.data]);
        var url = window.URL.createObjectURL(blob);
        var aLink = document.createElement("a");
        aLink.style.display = "none";
        aLink.href = url;
        aLink.setAttribute("download", name);
        document.body.appendChild(aLink);
        aLink.click();
        document.body.removeChild(aLink); //下载完成移除元素
        window.URL.revokeObjectURL(url); //释放掉blob对象
      })
    },
~~~

 

分类:

技术点:

相关文章:

  • 2021-12-01
  • 2021-10-12
  • 2021-11-30
  • 2022-02-09
  • 2022-12-23
  • 2021-08-28
  • 2021-12-28
  • 2021-12-05
猜你喜欢
  • 2021-09-27
  • 2022-12-23
  • 2021-11-24
  • 2019-12-20
  • 2022-12-23
  • 2021-12-08
相关资源
相似解决方案