当前位置: 首页 > news >正文

js循环导出多个word表格文档

文章目录

  • js循环导出多个word表格文档
    • 一、文档模板编辑
    • 二、安装依赖
    • 三、创建导出工具类exportWord.js
    • 四、调用
    • 五、效果图

js循环导出多个word表格文档

  • 结果案例:
    在这里插入图片描述

一、文档模板编辑

在这里插入图片描述

二、安装依赖

// 实现word下载的主要依赖
npm install docxtemplater pizzip  --save// 文件操作,也可以用fs、path等模块实现
npm install jszip jszip-utils --save // 文件存储依赖
npm install file-saver --save

三、创建导出工具类exportWord.js

import PizZip from 'pizzip'
import Docxtemplater from 'docxtemplater'
import JSZipUtils from 'jszip-utils'
import { saveAs } from 'file-saver'/*** 导出word,支持图片* @param {Object} tempDocxPath 模板文件路径* @param {Object} wordData 导出数据* @param {Object} fileName 导出文件名*/
export const exportWord = (tempDocxPath, wordData, fileName) => {JSZipUtils.getBinaryContent(tempDocxPath, function (error, content) {if (error) {throw error;}// PizZip实例let zip = new PizZip(content);// 创建并加载docxtemplater实例let doc = new Docxtemplater();doc.loadZip(zip);// 设置模板变量的值doc.setData(wordData);try {// 用模板变量的值替换所有模板变量doc.render();} catch (error) {// 抛出异常let e = {message: error.message,name: error.name,stack: error.stack,properties: error.properties};console.log(JSON.stringify({ error: e }));throw error;}// 生成docxtemplater对象zip文件let out = doc.getZip().generate({type: 'blob',mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'});// 将目标文件对象保存为目标类型的文件,并命名saveAs(out, fileName);});
}

四、调用

<script lang="ts">
import { exportWord } from '../../utils/exportWord'export default {name: 'DbInfo',data (){return{}},mounted() {},methods: {// 导出方法batchExWord(){var dataList = [{"tablecnName": "部门表","tableName": "sys_dept","tableDict": [{"cnfield": "部门id","colname": "dept_id","datatype": "bigint(20)","isprimary": "Y","isforeign": "N","isonly": "Y","nonempty": "Y","defaultstr": "N","describe": "部门id"},{"cnfield": "父部门id","colname": "parent_id","datatype": "bigint(20)","isprimary": "N","isforeign": "N","isonly": "N","nonempty": "N","defaultstr": "0","describe": "父部门id"},{"cnfield": "祖级列表","colname": "ancestors","datatype": "varchar(50)","isprimary": "N","isforeign": "N","isonly": "N","nonempty": "N","defaultstr": "N",
http://www.lryc.cn/news/500092.html

相关文章:

  • Spring Boot 日志 配置 SLF4J 和 Logback
  • 企业级包管理器:专栏概述 (1)
  • 【动手学电机驱动】STM32-MBD(1)安装 STM32 硬件支持包
  • 书后习题答案:《Python程序设计基础(第2版)》,电子工业出版社,2020.01
  • Qt之第三方库‌QXlsx使用(三)
  • Python通过global实现多文件共享全局参数,方法
  • DevOps工程技术价值流:项目构建工具的选择与实践
  • 【数据库】复习
  • CorsConfig前后端数据跨域连接,IDEA右侧Maven窗口消失
  • Python微博动态爬虫
  • 【设计模式】单例模式 在java中的应用
  • burp suite 8
  • 为什么在Java中super与this不能共存于子类构造器中,其中this起什么作用
  • Hypothesis:高效的 Python 测试工具
  • Terminus Calculator 计算原理分享
  • Wwise 使用MIDI文件、采样音频
  • 在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案
  • 【RocketMQ 源码分析(一)】设计理念与源码阅读技巧
  • 独立ip服务器有什么优点?
  • 如何使用Python库连接Redis
  • Vant UI +Golang(gin) 上传文件
  • 【Unity高级】如何实现粒子系统的间歇式喷射
  • 通过linux命令获取自选股票价格及大盘涨跌幅
  • 透彻理解并解决Mockito模拟框架的单元测试无法运行的问题
  • vue3字典数据的显示问题(使用hooks解决)
  • Elasticsearch 单节点安全配置与用户认证
  • 二分查找(带图详解)
  • 【Git】:标签管理
  • 物品识别 树莓派 5 YOLO v5 v8 v10 11 计算机视觉
  • 单片机软件工程师前景分析