iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vue导出word纯前端的实现方式
  • 257
分享到

vue导出word纯前端的实现方式

2024-04-02 19:04:59 257人浏览 独家记忆
摘要

Vue导出Word纯前端实现 最近项目有个需求导出word,纯前端实现,查了查资料,用docxtemplater简直不要太简单。 直接把官网例子拿过来就可以了。!!! 官网地址 首先

Vue导出Word前端实现

最近项目有个需求导出word,纯前端实现,查了查资料,用docxtemplater简直不要太简单。

直接把官网例子拿过来就可以了。!!!

官网地址

首先,新建一个docx文件,把模板先写好。

注意!!如果数据结构中存在数组。 用{#xxx}{/xxx} 包裹。

数据结构示例:

 wordData: {
          name: '导出word',
          nameList: [{
              name: "张三",
              age: 16,
              hobby: ['吃饭', '睡觉', '打豆豆']
            },
            {
              name: "李四",
              age: 19,
              hobby: ['抽烟', '喝酒', '打麻将']
            },
          ]
        },

模板写好之后放入项目中。

然后导入需要的包,

npm i docxtemplater pizzip  file-saver  --save

然后在需要的模块内引入

  import 'docxtemplater/build/docxtemplater.js'
  import 'pizzip/dist/pizzip.js'
  import 'pizzip/dist/pizzip-utils.js'
  import 'file-saver'
  methods: {
      // 导出word
      loadFile(url, callback) {
        PizZipUtils.getBinaryContent(url, callback);
      },
      generate() {
        var that = this;
        this.loadFile("../../static/word.docx", function (error, content) {
          if (error) {
            throw error
          };
          var zip = new PizZip(content);
          var doc = new window.docxtemplater().loadZip(zip)
          doc.setData({
            ...that.wordData
          });
          try {
            // render the document (replace all occurences of {first_name} by John, {last_name} by Doe, ...)
            doc.render()
          } catch (error) {
            var e = {
              message: error.message,
              name: error.name,
              stack: error.stack,
              properties: error.properties,
            }
            console.log(JSON.stringify({
              error: e
            }));
            // The error thrown here contains additional infORMation when logged with JSON.stringify (it contains a property object).
            throw error;
          }
          var out = doc.getZip().generate({
            type: "blob",
            mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
          }) //Output the document using Data-URI
          saveAs(out, "output.docx")
        })
      },
    }

到此就完事了。

完整代码,安装完包之后直接运行就好。记得放入word模板!!!

<template>
  <div>
    <button @click="generate">导出</button>
  </div>
</template>
<script>
  import 'docxtemplater/build/docxtemplater.js'
  import 'pizzip/dist/pizzip.js'
  import 'pizzip/dist/pizzip-utils.js'
  import 'file-saver'
  export default {
    data() {
      return {
        wordData: {
          name: '导出word',
          nameList: [{
              name: "张三",
              age: 16,
              hobby: ['吃饭', '睡觉', '打豆豆']
            },
            {
              name: "李四",
              age: 19,
              hobby: ['抽烟', '喝酒', '打麻将']
            },
          ]
        },
      }
    },
    methods: {
      // 导出word
      loadFile(url, callback) {
        PizZipUtils.getBinaryContent(url, callback);
      },
      generate() {
        var that = this;
        this.loadFile("../../static/word.docx", function (error, content) {
          if (error) {
            throw error
          };
          var zip = new PizZip(content);
          var doc = new window.docxtemplater().loadZip(zip)
          doc.setData({
            ...that.wordData
          });
          try {
            // render the document (replace all occurences of {first_name} by John, {last_name} by Doe, ...)
            doc.render()
          } catch (error) {
            var e = {
              message: error.message,
              name: error.name,
              stack: error.stack,
              properties: error.properties,
            }
            console.log(JSON.stringify({
              error: e
            }));
            // The error thrown here contains additional information when logged with JSON.stringify (it contains a property object).
            throw error;
          }
          var out = doc.getZip().generate({
            type: "blob",
            mimeType: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
          }) //Output the document using Data-URI
          saveAs(out, "output.docx")
        })
      },
    }
  }
</script>
<style scoped>
</style>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: vue导出word纯前端的实现方式

本文链接: https://www.lsjlt.com/news/146457.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vue导出word纯前端的实现方式
    vue导出word纯前端实现 最近项目有个需求导出word,纯前端实现,查了查资料,用docxtemplater简直不要太简单。 直接把官网例子拿过来就可以了。!!! 官网地址 首先...
    99+
    2022-11-13
  • javascript 实现纯前端将数据导出excel两种方式
    目录前言方法一方法二前言 修改之前项目代码的时候,发现前人导出excel是用纯javascript实现的。并没有调用后台接口。 之前从来没这么用过,记录一下。以备不时之需。 方法一 ...
    99+
    2022-11-13
  • vue实现导出Word文件(数据流方式)
    目录第一步:安装依赖:jquery 和file-saver第二步:新增jquery.wordexport.js第三步:组件使用vue导出Word文件(模板方式)vue导出word文档...
    99+
    2022-11-13
  • javascript怎么实现纯前端将数据导出excel
    这篇文章主要介绍了javascript怎么实现纯前端将数据导出excel的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript怎么实现纯前端将数据导出excel文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-07-02
  • Vue前端导出后端返回的excel文件方式
    目录前端导出后端返回的excel文件处理文件的下载(后端Excel导出)后端文件流通过 Blob 下载拼接 URL 下载前端导出后端返回的excel文件 在网上搜索了一番之后,决定采...
    99+
    2022-11-13
  • React.js前端导出Excel的方式
    目录前言实现方式csv 与 Excel 的区别react-csvxlsxcdn 方式在 react 中使用json 转 excel结语前言 前段时间,项目上有个需求需要将数据报表导出...
    99+
    2022-11-13
  • Vue前端导出Excel文件的详细实现方案
    目录一、技术选型 二、技术实现 使用 vue-json-excel 插件实现1.安装 vue-json-excel 依赖 2.注册插件到 vue 实例 3.使用方式 基于 sheet...
    99+
    2022-11-12
  • nodejs+vue如何实现在客户端导出word文档
    小编给大家分享一下nodejs+vue如何实现在客户端导出word文档,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!问题node...
    99+
    2022-10-19
  • Vue3纯前端实现Vue路由权限的方法详解
    目录前言RBAC模型代码实现登录菜单信息动态路由筛选总结前言 在开发管理后台时,都会存在多个角色登录,登录成功后,不同的角色会展示不同的菜单路由。这就是我们通常所说的动态路由权限,实...
    99+
    2022-11-13
  • Java 实现导出 Word 文档的方法详解
    系列文章目录 文章目录 系列文章目录前言一、添加 Apache POI 依赖:二、创建 Word 文档:三、添加内容到文档:四、导出文档:总结 前言 在 Java 应用程序中,有时候我...
    99+
    2023-09-02
    java word 开发语言
  • vue项目怎么实现前端预览word与pdf格式文件
    今天小编给大家分享一下vue项目怎么实现前端预览word与pdf格式文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。页面上...
    99+
    2023-07-05
  • SpringBoot+Vue实现EasyPOI导入导出的方法详解
    目录前言一、为什么做导入导出二、什么是 EasyPOI三、项目简介项目需求效果图开发环境四、实战开发 核心源码前端页面后端核心实现五、项目源码小结前言 Hello~ ,前后端分离系列...
    99+
    2022-11-13
  • Java实现将导出带格式的Excel数据到Word表格
    在Word中制作报表时,我们经常需要将Excel中的数据复制粘贴到Word中,这样则可以直接在Word文档中查看数据而无需打开另一个Excel文件。但是如果表格比较长,内容就会存在一...
    99+
    2022-11-16
    Java导出Excel数据到Word Java导出Excel数据 Java 导出数据
  • vue-element-admin项目导入和导出的实现方法
    这篇文章给大家分享的是有关vue-element-admin项目导入和导出的实现方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue-element-admin导入组件封装模板和样式首先封装一个类似的组件,首...
    99+
    2023-06-15
  • 后端接口返回文件流格式、前端如何实现文件下载导出呢?
    在项目开发过程中,难免会需要实现文件下载功能,记录下自己实际开发过程过程中遇到两种实现的方式。一种:后端直接返回加密url ,前端解密后直接使用 a标签下载就可以,这种方法相等比较简单,另一种:后端接...
    99+
    2023-09-02
    前端 java javascript
  • vue前端RSA加密java后端解密的方法实现
    目录一、前言二、前端代码与用法三、后端代码与用法一、前言 最近安全测试的总是测出安全漏洞来,让开发改。 想了想干脆把请求参数都加密下,前端加密后端解密,这样总差不多了。 看了下AES...
    99+
    2023-02-24
    vue RSA加密 java后端解密
  • 前端配合后端实现Vue路由权限的方法实例
    目录前言实现思路代码实现登录本地路由列表生成路由挂载路由总结前言 在开发管理后台时,都会存在多个角色登录,登录成功后,不同的角色会展示不同的菜单路由。这就是我们通常所说的动态路由权限...
    99+
    2022-11-13
  • SpringBootEasyPoi动态导入导出的两种方式实现方法详解
    目录前言一、基于@Excel的 isColumnHidden 属性1.1 实现原理1.2 实现步骤1.3 实现效果二. 基于List< ExcelExportEntity &g...
    99+
    2022-11-13
  • vue中使用js-xlsx导出excel的实现方法
    目录安装第一种第二种第三种安装 npm install --save xlsx file-saver 在组件里面引入 import FileSaver from 'file-save...
    99+
    2022-11-13
  • 浅谈前端JS沙箱实现的几种方式
    目录前言 iframe实现沙箱 diff方式实现沙箱 基于代理(Proxy)实现单实例沙箱 基于代理(Proxy)实现多实例沙箱 结束语 参考前言 在微前端领域当中,沙箱是很重要的...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作