美文网首页
Node.js生成Word文档

Node.js生成Word文档

作者: 静谧的橘子 | 来源:发表于2017-10-25 08:55 被阅读1119次

    因为要写一些Word文档,但是重复性的太多,闲着没事,就想着研究了一下用代码生成word文档。
    百度了一下,基本上使用的是officegen这个框架,直接上代码例子:

    var officegen = require('officegen');
    var fs    = require('fs');
    var path  = require('path');
    var docx  = officegen ( 'docx' );
    var async = require('async');
    
    var header = docx.getHeader ().createP ({align:('center')});
    
    console.log(__dirname);
    
    header.addText ( '公司名称',{font_size:8,font_face:'SimSun' });
    header.addHorizontalLine();
    
    var pObj = docx.createP();
    pObj.options.align = 'center';
    pObj.addText("样品检测流程卡", {font_size:20,font_face:'KaiTi_GB2312'});
    
    var firstTable = [
        [{
            val:"共 1 页 第 1 页",
            opts:{
                b:true,
                sz:20,
                align:"left"
            }
        },{
            val:"编号:",
            opts:{
                b:true,
                sz:20,
                align:"right"
            }
        }]
    ];
    var tableStyle = {
        tableColWidth: 5500,
        tableFontFamily: "Times New Roman",
    }
    var pObj = docx.createTable(firstTable,tableStyle);
    
    var table = [
        [{
            val:"样品名称",
            opts:{
                b:true,
                sz:'20',
                align:"left"
            }
        },{
            val:"电源适配器",
            
            opts:{
    
                b:true,
                sz:20,
                align:"center"
            }
        },{
            val:"样品数量",
            
            opts:{
    
                b:true,
                sz:20,
                align:"center"
            }
        },{
            val:"         ",
            opts:{
      
                b:true,
                sz:20,
            }
        },{
            val:"报告编号",
            opts:{
    
                b:true,
                sz:20,
                align:"left"
            }
        },{
            val:"A-123456-ABC123456-201704392-D",
            opts:{
                b:true,
                sz:20,
                align:"center"
            }
        }],
    
        [{
            val:"型号规格",
            opts:{
    
                b:true,
                sz:20,
                align:"center"
            }
        },{
            val:"",
            opts:{
    
                b:true,
                sz:20,
                align:"center"
            }
        },{
            val:"要求完成日期",
            opts:{
    
                b:true,
                sz:20,
                align:"center"
            }
        },{
            val:"2017.5.19",
            opts:{
                b:true,
                sz:20,
            }
        },{
            val:"委托单位",
            opts:{
    
                b:true,
                sz:20,
                align:"center"
            }
        },{
            val:"电子股份有限公司",
            opts:{
    
                b:true,
                sz:20,
                align:"center"
            }
        }]
    ];
    
    var tableStyle = {
        tableColWidth: 5000,
        tableSize: 20,
        borders:true
    }
    var pObj = docx.createTable (table, tableStyle);
    var out  = fs.createWriteStream ( 'out.docx' );// 文件写入
    out.on ( 'error', function ( err ) {
        console.log ( err );
    });
    var result = docx.generate (out);// 服务端生成word
    

    因为基本上的text,在Git上的demo介绍,基本上能满足使用,但是如果使用table较多的话,demo上的一下介绍并不是很详细,所以需要自己去看源码也就是docxtable.js去看一看具体的属性。
    Git-officegen-demo:https://github.com/Ziv-Barber/officegen

    相关文章

      网友评论

          本文标题:Node.js生成Word文档

          本文链接:https://www.haomeiwen.com/subject/wfwfpxtx.html