当前位置: 首页 > 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",

相关文章:

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

文章目录 js循环导出多个word表格文档一、文档模板编辑二、安装依赖三、创建导出工具类exportWord.js四、调用五、效果图js循环导出多个word表格文档 结果案例: 一、文档模板编辑 二、安装依赖 // 实现word下载的主要依赖 npm install docxtemplater pizzip --save// 文件操…...

Spring Boot 日志 配置 SLF4J 和 Logback

前言 在开发 Java 应用时&#xff0c;日志记录是不可或缺的一部分。日志可以记录应用的运行状态、错误信息和调试信息&#xff0c;帮助开发者快速定位和解决问题。Spring Boot 项目默认集成了 SLF4J 和 Logback&#xff0c;使得日志配置变得简单而灵活。本文将详细介绍如何在 …...

企业级包管理器:专栏概述 (1)

在当今的前端开发领域&#xff0c;包管理器已经成为了每一位开发者不可或缺的工具。它们就像一个个神奇的工具箱&#xff0c;里面装满了各种各样的工具&#xff08;即软件包&#xff09;&#xff0c;帮助我们快速搭建项目、实现功能&#xff0c;极大地提高了开发效率。接下来&a…...

【动手学电机驱动】STM32-MBD(1)安装 STM32 硬件支持包

STM32-MBD&#xff08;1&#xff09;安装 STM32 硬件支持包 【动手学电机驱动】STM32-MBD&#xff08;1&#xff09;安装 STM32 硬件支持包 1. 必须的软硬件条件2. 嵌入式硬件支持包2.1 Embedded Coder2.2 嵌入式硬件支持包2.3 Embedded Coder Support Package for STMicroelec…...

书后习题答案:《Python程序设计基础(第2版)》,电子工业出版社,2020.01

【持续更新】 第3章 from math import *x1 float(input("请输入x1: ")) # print(x1) x2 float(input("请输入x2: ")) y1 float(input("请输入y1: ")) y2 float(input("请输入y2: "))dis sqrt(pow(x1 - x2, 2) pow(y1 - y2, 2))…...

Qt之第三方库‌QXlsx使用(三)

Qt开发 系列文章 - QXlsx&#xff08;三&#xff09; 目录 前言 一、Qt开源库 二、QXlsx 1.QXlsx介绍 2.QXlsx下载 3.QXlsx移植 4.修改项目文件.pro 三、使用技巧 1.添加头文件 2.写入数据 3.读出数据 总结 前言 Qt第三方控件库是指非Qt官方提供的、用于扩展Qt应用…...

Python通过global实现多文件共享全局参数,方法

Python通过global实现多文件共享全局参数 global关键字,全局变量 基础用法 这种用法&#xff0c;不能在其他的py文件中使用&#xff0c; x 6 def func():global x #定义外部的xx 10 func() print (x) #输出10共享参数 新建glo.py文件&#xff08;全局变量文件&#xff09;…...

DevOps工程技术价值流:项目构建工具的选择与实践

在快速迭代的软件工程领域&#xff0c;项目构建工具扮演着举足轻重的角色。它们不仅自动化了构建、测试、打包和部署等关键环节&#xff0c;还显著提升了开发效率和质量。本文将深入探讨后端常用的Maven和Gradle&#xff0c;以及前端不可或缺的NPM&#xff0c;并重点对比Maven与…...

【数据库】复习

数据库期中复习——概念填空_在修改数据结构时,为了保证数据库的数据独立性-CSDN博客 选择题 关系数据理论-数据库习题_数据库关系理论考题-CSDN博客 关系、关系模式、关系模型区别和联系 关系&#xff1a;元组的集合&#xff0c;一张表 关系模式&#xff1a;关系的描述 R(…...

CorsConfig前后端数据跨域连接,IDEA右侧Maven窗口消失

前后端数据跨域连接&#xff08;分页查询并显示&#xff09; 一、后端添加分页查询 分页查询核心就是&#xff1a;每页需要显示多少条记录(pageSize)&#xff0c;当前查看第几页(pageNum);MySQL提供了分页函数limit m,n select * from table limit (pageNum-1)*pageSize, pa…...

Python微博动态爬虫

本文是刘金路的《语言数据获取与分析基础》第十章的扩展&#xff0c;详细解释了如何利用Python进行微博爬虫&#xff0c;爬虫内容包括微博指定帖子的一级评论、评论时间、用户名、id、地区、点赞数。 整个过程十分明了&#xff0c;就是用户利用代码模拟Ajax请求&#xff0c;发…...

【设计模式】单例模式 在java中的应用

文章目录 引言什么是单例模式单例模式的应用场景单例模式的优缺点优点缺点 单例模式的基本实现饿汉式单例模式懒汉式单例模式双重检查锁定静态内部类枚举单例 单例模式的线程安全问题多线程环境下的单例模式线程安全的实现方式1. **懒汉式单例模式&#xff08;线程不安全&#…...

burp suite 8

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…...

为什么在Java中super与this不能共存于子类构造器中,其中this起什么作用

在 Java 中&#xff0c;super 和 this 是两个关键字&#xff0c;它们在子类的构造器中有特定的用途和限制。 super 关键字&#xff1a; super 用于从父类&#xff08;超类&#xff09;访问成员&#xff08;属性和方法&#xff09;或者调用父类的构造方法。 在子类的构造器中&…...

Hypothesis:高效的 Python 测试工具

简介&#xff1a;Hypothesis 是一个强大的 Python 测试库&#xff0c;旨在自动生成各种测试案例&#xff0c;以帮助开发者发现潜在的边界问题和隐藏的错误。通过对输入数据进行智能化的探索&#xff0c;Hypothesis 能够为测试提供更全面的覆盖&#xff0c;避免遗漏一些极端或不…...

Terminus Calculator 计算原理分享

在《使命召唤&#xff1a;黑色行动 6》僵尸模式中&#xff0c;Terminus 关卡的研究办公室里有一个复杂的数学谜题需要解决。为了获得多相共振器&#xff0c;玩家需要计算出三个数字并输入电脑。虽然可以花费 5000 精华来获得答案&#xff0c;但使用 Terminus Calculator 可以更…...

Wwise 使用MIDI文件、采样音频

第一种&#xff1a;当采样音频只有一个文件的时候 1.拖入MIDI文件到Interactive Music Hierarchy层级 2.拖入采样音频到Actor-Mixer Hierarchy层级 3.勾选MIDI显示出面板&#xff0c;设置Root Note与采样音频音高相同&#xff0c;这里是C#5 4.播放测试&#xff0c;成功&…...

在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案

在CentOS上无Parallel时并发上传.wav文件的Shell脚本解决方案 背景概述解决方案脚本实现脚本说明使用指南注意事项在CentOS操作系统环境中,若需并发上传特定目录下的.wav文件至HTTP服务器,而系统未安装GNU parallel工具,我们可通过其他方法实现此需求。本文将介绍一种利用Sh…...

【RocketMQ 源码分析(一)】设计理念与源码阅读技巧

RocketMQ 的设计理念与源码阅读技巧 一、设计理念二、源码设计三、源码阅读技巧 一直想仔细仔细看看这个 RocketMQ 的源码&#xff0c;学学它的设计思想和编码风格&#xff0c;没准在以后自己在设计和编码的时候有思考的方向。这是专栏的第一篇 —— 介绍下 RocketMQ 的一些设计…...

独立ip服务器有什么优点?

网站的性能和安全性直接影响到用户体验和业务发&#xff0c;独立IP服务器作为一种主流的托管方式&#xff0c;因其独特的优势而受到许多企业和个人站长的青睐。与共享IP相比&#xff0c;独立IP服务器到底有哪些优点呢&#xff1f; 使用独立IP的用户不必担心与其他网站共享同一…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M&#xff1a;百万&#xff08;Million&#xff09; B&#xff1a;十亿&#xff08;Billion&#xff09; 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的&#xff0c;但是一个参数所表示多少字节不一定&#xff0c;需要看这个参数以什么…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)

设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile&#xff0c;新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

PostgreSQL——环境搭建

一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在&#xff0…...

C语言中提供的第三方库之哈希表实现

一. 简介 前面一篇文章简单学习了C语言中第三方库&#xff08;uthash库&#xff09;提供对哈希表的操作&#xff0c;文章如下&#xff1a; C语言中提供的第三方库uthash常用接口-CSDN博客 本文简单学习一下第三方库 uthash库对哈希表的操作。 二. uthash库哈希表操作示例 u…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...