项目实战下的经验总结

背景

实现一个可以在wps、office的展示图表、表格以及自定义页眉、页脚、字体大小以及图片信息。
使用到的库有 officegen 和 highchart-export-server

简单介绍一下officegen
officegen 模块可以为Microsoft Office 2007及更高版本生成Office Open XML文件。此模块不依赖于任何框架,您不需要安装Microsoft Office,因此您可以将它用于任何类型的 JavaScript 应用程序。输出也是流而不是文件,不依赖于任何输出工具。officegen模块应适用于支持任何支持Node的任何环境,包括Linux,OSX和Windows。

此模块生成Excel(.xlsx),PowerPoint(.pptx)和Word(.docx)文档。 Officegen还支持带有嵌入数据的PowerPoint本机图表对象。
使用officegen生成Word文件
const officegen = require('officegen')
const fs = require('fs')
// 创建一个空的word对象
let docx = officegen('docx') 

// 当word文件完成创建后会调用该函数
docx.on('finalize', written => {
   
  console.log('Finish to create a Microsoft Word document.')
})

// 创建一个段落,类似html里面的p标签
let pObj = docx.createP()

// 往标签里面添加内容
pObj.addText('Simple')

// 添加内容同事设置字体颜色,北京颜色
pObj.addText(' and back color.', {
    color: '00ffff', back: '000088' })

// 还可以往段落里面添加图片
pObj.addImage('some-image.png')

// 最后将docx对象塞到generate里面生成名为example.docx的文件
let out = fs.createWriteStream('example.docx')
docx.generate(out)
使用officegen生成PPT文件
const officegen = require('officegen')
let pptx = officegen('pptx')

// 创建一页PPT,可以往里面插图表、文本、表格以及图片
slide = pptx.makeNewSlide({
   
  userLayout: 'title'
});

// 设置标题跟设置段落一样,可以设置字体大小/颜色,font-family
slide.setTitle([
  // This array is like a paragraph and you can use any settings that you pass for creating a paragraph,
  // Each object here is like a call to addText:
  {
   
    text: 'Hello ',
    options: {
   font_size: 56}
  },
  {
   
    text: 'World!',
    options: {
   
      font_size: 56,
      font_face: 'Arial',
      color: 'ffff00'
    }
  }
]);

// 插入图表,这里的chartInfo有一定的数据编排格式,建议如果产品线需要很多图表的话,这里可以单独抽出来维护
slide.addChart( {
      
    	 title: 'Column chart',
          renderType: 'column',  // 这里设置图表的样式,类似echart里面的type
          valAxisTitle: 'Costs/Revenues ($)',
          catAxisTitle: 'Category',
          valAxisNumFmt: '$0',
          valAxisMaxValue: 24,
    data:  [{
   
      name: 'Income',
      labels: ['2005', '2006', '2007', '2008', '2009'],
      values: [<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值