小程序腾讯云云开发实现生成word模板

场景:合同模板、协议模板自动填充内容,并生成word

使用到的库

  • docx-templates 将docx模板填充内容
  • dayjs 保存文件时生成时间目录
  • string-random 随机文件名

原理:读取模板docx,通过docx-templates填充内容,上传到云开发,最后返回云存储文件id给用户

const {
	createReport
} = require('docx-templates')
const fs = require('fs');
const path = require('path')

const template = fs.readFileSync(path.join(__dirname, 'verify_company.docx'))//读取文件

const buffer = await createReport({
	template,
	data: {
		//变量
		no: '123',
		creator: 'Appleseed',
	},
	cmdDelimiter: ['{', '}']//以{}作为变量分隔符
})
		
const dayjs = require('../../extend/dayjs');
const preDir = dayjs().format("YY/MM/DD");//日期
const stringRandom = require('string-random')
const randfilename = stringRandom(32)//随机文件名
const cloudPath = `verify/docx/${preDir}/${randfilename}.docx`//文件
return await cloud.uploadFile({
	cloudPath,
	fileContent: Buffer.from(buffer, 'hex')
})

word模板
在这里插入图片描述

最后生成的文件
在这里插入图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值