文章目錄
- nodejs循環(huán)導(dǎo)出多個(gè)word表格文檔
- 一、文檔模板編輯
- 二、安裝依賴(lài)
- 三、創(chuàng)建導(dǎo)出工具類(lèi)exportWord.js
- 四、調(diào)用
- 五、效果圖
nodejs循環(huán)導(dǎo)出多個(gè)word表格文檔
- 結(jié)果案例:

一、文檔模板編輯

二、安裝依賴(lài)
// 實(shí)現(xiàn)word下載的主要依賴(lài)
npm install docxtemplater pizzip --save// 文件操作,也可以用fs、path等模塊實(shí)現(xiàn)
npm install jszip jszip-utils --save // 文件存儲(chǔ)依賴(lài)
npm install file-saver --save
三、創(chuàng)建導(dǎo)出工具類(lèi)exportWord.js
import PizZip from 'pizzip'
import Docxtemplater from 'docxtemplater'
import JSZipUtils from 'jszip-utils'
import { saveAs } from 'file-saver'
export const exportWord = (tempDocxPath, wordData, fileName) => {JSZipUtils.getBinaryContent(tempDocxPath, function (error, content) {if (error) {throw error;}let zip = new PizZip(content);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;}let out = doc.getZip().generate({type: 'blob',mimeType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'});saveAs(out, fileName);});
}
四、調(diào)用
<script lang="ts">
import { exportWord } from '../../utils/exportWord'export default {name: 'DbInfo',data (){return{}},mounted() {},methods: {batchExWord(){var dataList = [{"tablecnName": "部門(mén)表","tableName": "sys_dept","tableDict": [{"cnfield": "部門(mén)id","colname": "dept_id","datatype": "bigint(20)","isprimary": "Y","isforeign": "N","isonly": "Y","nonempty": "Y","defaultstr": "N","describe": "部門(mén)id"},{"cnfield": "父部門(mén)id","colname": "parent_id","datatype": "bigint(20)","isprimary": "N","isforeign": "N","isonly": "N","nonempty": "N","defaultstr": "0","describe": "父部門(mén)id"},{"cnfield": "祖級(jí)列表","colname": "ancestors","datatype": "varchar(50)","isprimary": "N","isforeign": "N","isonly": "N","nonempty": "N","defaultstr": "N",