-
安装依赖
-- 安装 docxtemplater cnpm install docxtemplater pizzip --save -- 安装 jszip-utils cnpm install jszip-utils --save -- 安装 jszip cnpm install jszip --save -- 安装 FileSaver cnpm install file-saver --save -
引入依赖包
import docxtemplater from "docxtemplater"; import PizZip from "pizzip"; import JSZipUtils from "jszip-utils"; import { saveAs } from "file-saver"; -
创建word模板文件

-
导出word文件
downLoadWord(detailData) { let docxSrc = "/(模板文件名).docx";//模板文件的路径 let docxName = "(导出文件名).docx";//导出文件的名字 // 读取并获得模板文件的二进制内容 JSZipUtils.getBinaryContent(docxSrc, function (error, content) { if (error) { console.log(JSON.stringify(error.message)); return; } let zip = new PizZip(content); let doc = new docxtemplater().loadZip(zip); // 设置模板变量的值 doc.setData({ ...detailData, name: detailData.name, age: detailData.age, address: detailData.address, }); 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, docxName); }); } -
保存结果

注意:
- 模板文件推荐放在静态目录文件下。
- 使用vue-cli2的时候,放在static目录下,使用vue-cli3的时候,放在public目录下。

本文档介绍了如何使用JavaScript库Docxtemplater、JSZip和FileSaver来读取模板文件,填充数据并导出Word文档。首先,通过npm安装所需依赖,然后引入这些库。接着,创建一个Word模板文件,并在`downLoadWord`函数中读取模板,设置数据,渲染并生成Word文件,最后使用FileSaver库保存为`.docx`格式。注意模板文件应放在vue-cli项目的静态资源目录下。

457

被折叠的 条评论
为什么被折叠?



