vue element ui 导出word文件方法

这篇具有很好参考价值的文章主要介绍了vue element ui 导出word文件方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1首先安装导出word需要的依赖

-- 安装 docxtemplater
npm install docxtemplater pizzip  --save
 
-- 安装 jszip-utils
npm install jszip-utils --save
 
-- 安装 jszip
npm install jszip --save
 
-- 安装 FileSaver
npm install file-saver --save

2.然后在需要导入的页面引入

import docxtemplater from 'docxtemplater'
import PizZip from 'pizzip'
import JSZipUtils from 'jszip-utils'
import {saveAs} from 'file-saver'

3.需要准备一个word模板文件(按自己所需格式),放到项目public文件夹下,如图所示:

vue element ui 导出word文件方法

 4.前端页面部分如图

vue element ui 导出word文件方法

 代码如下

      <div class="home-css">
        <el-button style="margin: 20px" type="success" size="large" @click="outword"
          >导出申请表</el-button
        >
        <el-card class="el-card-css">
          <div style="display: flex; align-items: center; margin-top: 20px">
            <span>所在部门:</span>
            <el-input v-model="organ" placeholder="" clearable class="input" />
            <span>姓名:</span>
            <el-input v-model="name" placeholder="" clearable class="input" />
            <span>性别:</span>
            <el-input v-model="gender" placeholder="" clearable class="input" />
          </div>
          <div style="display: flex; align-items: center; margin-top: 20px">
            <span>年龄:</span>
            <el-input v-model="age" placeholder="" clearable class="input" />
            <span>出差天数:</span>
            <el-input v-model="days" placeholder="" clearable class="input" />
            <span>职务:</span>
            <el-input v-model="worker" placeholder="" clearable class="input" />
          </div>

          <div style="display: flex; align-items: center; margin-top: 20px">
            <span>时间:</span>
            <el-input v-model="date" placeholder="" clearable class="input" />
          </div>

          <div style="display: flex; align-items: center; margin-top: 20px">
            <span>工作详情:</span>
            <el-input
              v-model="work"
              maxlength="90"
              show-word-limit
              type="textarea"
              style="width: 500px; margin-left: 20px"
            />
          </div>
        </el-card>
      </div>

data数据如下

      organ: '',
      name: '',
      gender: '',
      age: '',
      days: '',
      worker: '',
      date: '',
      work: '',

      wordData: {
        title: '出差申请表',
        organ: '',
        name: '',
        gender: '',
        age: '',
        days: '',
        worker: '',
        date: '',
        work: ''
      },

点击导出方法事件如下

    outword () {
      this.wordData.organ = this.organ
      this.wordData.name = this.name
      this.wordData.gender = this.gender
      this.wordData.age = this.age
      this.wordData.days = this.days
      this.wordData.worker = this.worker
      this.wordData.date = this.date
      this.wordData.why = this.why

      const that = this
      const word = '/出差申请表.docx'
      const wordname = '出差申请表.docx'
      JSZipUtils.getBinaryContent(word, function (error, content) {
        if (error) {
          throw error
        }
        const zip = new PizZip(content)
        const doc = new Docxtemplater().loadZip(zip)
        doc.setData({
          ...that.wordData
        })

        try {
          doc.render()
        } catch (error) {
          const e = {
            message: error.message,
            name: error.name,
            stack: error.stack,
            properties: error.properties
          }
          console.log(JSON.stringify({ error: e }))
          throw error
        }
        const out = doc.getZip().generate({
          type: 'blob',
          mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
        })
        saveAs(out, wordname)
      })
    },

5.注意word文件格式一定要以.docx结尾,文件名一定要对应上,不然会报错,报错的话就看引入的word文件文章来源地址https://www.toymoban.com/news/detail-499542.html

到了这里,关于vue element ui 导出word文件方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue+element UI Excel导入导出

     1.终端执行命令 2.script中导入 3.单表头效果图 4.html代码:  

    2024年02月04日
    浏览(26)
  • vue项目根据word模版导出word文件

    一、安装依赖 二、创建word模版 也就是编辑一个word文档,文档中需要动态取值的地方用{变量}取值;表格数据可以进行循环,以{#数组变量名}开始,以{/数组变量名}结束,如果数组变量是字符串而非对象则{#table}{.}{/table}。图片以{%图片base64变量名}展示,{%%图片base64变量名}表

    2024年02月12日
    浏览(33)
  • Vue中前端导出word文件

    很多时候在工作中会碰到完全由前端导出word文件的需求,因此特地记录一下比较常用的几种方式。 一、提供一个word模板 该方法提供一个word模板文件,数据通过参数替换的方式传入word文件中,灵活性较差,适用于简单的文件导出。需要依赖: docxtemplater、file-saver、jszip-uti

    2024年02月05日
    浏览(35)
  • 记录--Vue中前端导出word文件

    很多时候在工作中会碰到完全由前端导出word文件的需求,因此特地记录一下比较常用的几种方式。 该方法提供一个word模板文件,数据通过参数替换的方式传入word文件中,灵活性较差,适用于简单的文件导出。需要依赖: docxtemplater、file-saver、jszip-utils、pizzip 。   调用down

    2024年02月08日
    浏览(27)
  • vue若依导出word文件,简单的实现

    首先前端导包,注意exportDocx的导包位置要修改成你自己的 然后新建一个测试按钮 接下来是js文件 然后将下面这个docutil.js文件复制到项目中,我是复制在utils/docUtil中 最后新建一个word模板文件,保存的格式要是docx才行哦 例如: 只要数据是集合,就得是{#list} 开头{/list}结尾 如果还有

    2024年02月11日
    浏览(24)
  • vue前端实现导出页面为word(两种方法)

    注意:在当前页面引入依赖 注意:如果导出的时候出现bug,大多是因为文件路径引入有问题,再次排查路径引入

    2024年04月25日
    浏览(33)
  • Typora Mac版本安装 Pandoc 导出文件为word格式(windows可通用)

    今天在和一位商务小伙伴对接的时候,需要提供一份 word 版本的初稿。对于习惯了使用 支持 markdown 语法的 typora 来说,复制粘贴到 word 是不可能的。 可以通过 “导出” 功能,选择将当前文件导出为 “word” 格式,这个过程有个小插曲,接下来就为各位小伙伴演示一下吧,作

    2024年02月06日
    浏览(26)
  • vue2+element ui 上传文件

    完全基于elementui组件封装的上传组件 ,后期继续优化 父组件使用 1、引入组件

    2024年02月04日
    浏览(36)
  • vue(element ui安装)

    先在盘服中找到你创建的node的位置 如有不懂根据可以看看上一章安装node 然后在终端找到 进入这个位置之后就可以安装了 输入npm i element-ui -S这个指令安装 到这里element ui就安装成功 打开这个文件在里面配置一下东西 到现在就可以使用element ui 打开App.vue文件 使用一下elemen

    2024年02月11日
    浏览(26)
  • vue element ui重置表单的方法

    element代码部分 rest(form) 里面的form是表单的名字 vue代码部分 重点 使用方式 在按钮里面嗲用**rest(表单名称)**方法进行重置表单

    2024年02月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包