node 导出指定格式的word文档

使用插件 docxtemplater

有个需求要把订单导出成word文档,百度搜了搜node导word的博客真少,无奈硬着头皮在npm上看英文文档,找了好几个轮子最终实验下docxtemplater深得我心。

要导出的结果

node 导出指定格式的word文档_第1张图片
捕获.PNG

模板文件

node 导出指定格式的word文档_第2张图片
捕获.PNG

根据docxtemplater官网介绍,生成自己的模板文件,接下来就是coding组装你的数据了

var JSZip = require('jszip');
var Docxtemplater = require('docxtemplater');
var fs = require('fs');
var path = require('path');
                var date="你封装的数据"
                var content = fs
                    .readFileSync(path.resolve("./", file), 'binary');//你的模板文件

                var zip = new JSZip(content);

                var doc = new Docxtemplater();
                doc.loadZip(zip);
                doc.setData(
                    date
                );
                doc.render()
                var buf = doc.getZip()
                    .generate({type: 'nodebuffer'});

/**
现在 buf 就是生成的文件内容,你可以fs.write()放到本地,也可以
res.writeHead(200, {
                    "Content-Type": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
                    'Content-disposition': 'attachment; filename=' + oid + '.docx'
                });
                res.end(buf)
浏览器下载
*/

docxtemplater 导word 你值得拥有

你可能感兴趣的:(node 导出指定格式的word文档)