首页 > 其他分享 >前端docx-templates生成word文档

前端docx-templates生成word文档

时间:2023-12-17 16:22:07浏览次数:32  
标签:templates docx fs word readFileSync 文档 模板

说明

docx-templates项目地址:https://github.com/guigrpa/docx-templates
原文:https://juejin.cn/post/7170695319004315679?searchId=202312171247306E0B93A485DAE6B4E304

这个库能干啥?

这个库能做的:

  • 替换Word模板中的文字
  • 实现FOR和IF操作
  • 在文档指定位置插入图片
  • 在模板里写JavaScript代码(!)
  • 在文档指定位置插入HTML,并让word尝试转换

不能做的:

  • 程从头开始编写文档;你需要先有一个模板
  • 模板,即一个主模板里嵌套了子模板

安装

npm install docx-templates
或
yarn add docx-templates

Node用法

package.json中添加"type": "module"
在index.js中添加如下内容

import {createReport} from 'docx-templates';
import fs from 'fs';

const template = fs.readFileSync('template.docx');

const buffer = await createReport({
  template,
  data: {
    title: "Test",
    data: [
      { name: "李龙", age: 15, grade: 85,img:fs.readFileSync("./src/1.jpg")},
      { name: "张三", age: 20, grade: 95,img:fs.readFileSync("./src/1.jpg") },
      { name: "张伟", age: 25, grade: 45,img:fs.readFileSync("./src/1.jpg") },
      { name: "王武", age: 20, grade: 65,img:fs.readFileSync("./src/1.jpg") },
    ],
  },
  additionalJsContext: {
    // width height: cm
    injectImage: (base64, width, height) => {
      return { width: width, height: height, data: base64, extension: ".png" };
    },
  },
  cmdDelimiter: ["{{", "}}"],
});

fs.writeFileSync('report.docx', buffer)

这是template.docx模版
image

最后生成的样子
image

标签:templates,docx,fs,word,readFileSync,文档,模板
From: https://www.cnblogs.com/tn666/p/17909235.html

相关文章

  • Wordpress modown8.8.1主题学习版开心版
    Modown是模板兔基于Erphpdownwordpress下载插件开发的付费下载资源、付费下载源码、收费附件下载、付费阅读查看隐藏内容、团购下载的WordPress主题,本站提供Modown主题开心版,免授权使用,仅用于个人学习,禁止用于商业用途!!!下载地址:https://www.itwk.cc/circle/921.html......
  • helloword执行过程,cpu从内存中读取数据
    1.cpu通过地址总线发出指令告诉内存控制器,我要操作哪块内存2.cpu通过控制总线向内存控制器发出读/写指令3.cpu通过数据总线,操作内存鼠标点击HelloWorld运行过程:1.点击鼠标,鼠标会发一个机器变更号---->usb控制器把信号传给---->系统总线---->南桥----->北桥---->cpu......
  • WordPress替代品:国产工具一样好用
    随着互联网的发展,网站建设变得越来越简单和普及化。WordPress作为一个广泛使用的开源内容管理系统(CMS),被大量的网站使用。然而,随着国内互联网产业的崛起,国产的网站建设工具也逐渐走向成熟。本文将介绍三款国产工具,它们可以完美替代WordPress,且同样好用。HelpLookHelpLook是一款功能......
  • pageoffice6提取word指定位置(数据区域)的值
    在实际的开发过程中,经常会遇到提取Word文档中指定位置的数据保存到数据库中的需求,PageOffice客户端控件即支持在线保存Word文件,也支持Word文档中的指定位置的数据或所有的数据提交到服务器端。在服务器端创建PageOffice的WordReader命名空间中的WordDocument对象,就可以获取到Word......
  • word公式显示不全,公式和文字错位问题
     类似于这种情况:1.文字和公式错位;2.公式上抬导致显示不全; 解决方法:1.选中该段2.字体→高级→位置→标准3.段落→中文版式→文本对齐方式→自动 效果:   ......
  • MySQL ERROR:Access denied for user `root`@`localhost` (using password:YES)
    背景  使用docker安装mysql5.7,容器显示正常启动,但始终本地或者远程都连接不上该数据库 定位原因  密码加密方式错误 解决方法   参考链接【1】https://www.cnblogs.com/beanmoon/p/3173924.html......
  • C++ Templates 第2版 电子书 pdf
    关注公众号:红宸笑。回复:电子书即可  本书是同名经典畅销图书的全新升级版本,针对C++11、C++14、C++17标准进行了全面更新,并对所有的新语言特性(包括可变参数模板、通用lambda、类模板参数推导等)进行了解释。全书共28章。首先全面介绍了本书的内容结构和相关情况。第1部分(......
  • Word图片显示不全,只显示下面的部分,甚至文字也只显示下部分
    当图片设置文字环绕为嵌入式时,图片会显示不全,有的时候,甚至文字也只显示下半身一、这是正常的情况二、这是显示不全的情况三、如何解决将段落格式中的固定值改成单倍行距或多倍行距即可,或者如果对图片文字环绕方式没有硬性要求的话,直接更改它的文字环绕方式更改行间距......
  • WPF 解决PasswordBox 属性Password无法绑定到后台的问题
    在WPF中,你可以使用密码框的Password属性来绑定到后台,但是由于安全性考虑,WPF的密码框不直接支持双向绑定。然而,你仍然可以通过其他方式实现将密码框的内容绑定到后台。一种常见的方法是创建一个附加属性(AttachedProperty)来实现密码框的双向绑定。以下是一个简单的示例代码:c......
  • Java开发者的Python快速实战指南:实用工具之PDF转DOCX文档(可视化界面)
    首先,大家对Python语法的了解已经基本完成,现在我们需要开始进行各种练习。我为大家准备了一些练习题目,比如之前的向量数据库等,这些题目可以参考第三方的SDK来进行操作,文档也是比较完善的。这个过程有点像我们之前使用Java对接第三方接口的方式,所以今天我想开发一个很实用的工具类,用......