草庐IT

有关docxtemplater的知识

新酱带给快乐 2023-05-21 原文

目录

官方文档

简介

docxtemplater是什么

快速入门

安装

基本使用

基础用法

条件

循环

表格

相关文章

vue导出word,docxtemplater,多重遍历,图片以及判断


官方文档

官方文档链接

简介

docxtemplater是什么

使用Javascript在应用程序中生成docx, pptx或xlsx

Docxtemplater是一个邮件合并工具,以编程方式使用,可以处理条件、循环,还可以扩展以插入图像、html或表。docxtemplater使用Javascript对象(或JSON)作为数据输入,所以它也可以很容易地从其他语言使用(见docker版本)。它处理docx, pptx和一个插件xlsx模板。它的工作方式与模板引擎相同,你给它一个模板+一些数据,它将输出一个生成的文档。许多解决方案,如docx.js、docx4j。Python-docx可以生成docx,但它们需要您编写特定的代码来创建标题、图像等。相比之下,docxtemplater基于标记的概念,每种类型的标记都向编写模板的用户公开一个特性。

快速入门

安装

npm

npm install docxtemplater --save

yarn

yarn add docxtemplater -s

基本使用

基础用法

// js给的数据结构
{
    name:'小新',
    age:5
}
// word 模板中
偶是{name},年龄:{age}岁

// word文档结果中
偶是小新,年龄:5岁

条件

以 {#000}开始,以 {/000} 结尾

// js给的数据结构
{
    "hasHuman": true,
    "Human": "家人"
    "hasDog": false,
    "dog": 流浪狗
}
// word 模板中
{#hasHuman}小白是{Human}{/hasHuman}
{#hasDog}小白是{dog}{/hasDog}

// word文档结果中
小白是家人

循环

循环和条件的用法一致

// js给的数据结构
{
    "products": [
        { name: "Windows", price: 100 },
        { name: "Mac OSX", price: 200 },
        { name: "Ubuntu", price: 0 }
    ]
}
// word 模板中
{#products}
    {name}, {price} €
{/products}

// word文档结果中
Windows, 100 €
Mac OSX, 200 €
Ubuntu, 0€

遍历包含基本数据(如字符串)的数组:

// js给的数据结构
{
   "products": [
       "Windows",
       "Mac OSX",
       "Ubuntu"
   ]
}
// word 模板中
{#products} {.} {/products}
// word文档结果中
Windows Mac OSX Ubuntu

表格

word 模板

NameAgePhone Number
{#users}{name}{age}{phone}{/}

js数据

{
    users: [
        { name: "John", age: 22, phone: "+33653454343" },
        { name: "Mary", age: 25, phone: "+33666666666" },
    ],
}

word结果

NameAgePhone Number
John22+33653454343
Mary25+33666666666

待更新。。。。。。。。。

相关文章

特别标注:此处都是引用大佬的,我只是一个无情的搬运工,还是需要多多向大佬学习

vue导出word,docxtemplater,多重遍历,图片以及判断

有关有关docxtemplater的知识的更多相关文章

  1. ruby - 我怎样才能更好地了解/了解更多关于 Ruby 的知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我最近开始学习Ruby,这是我的第一门编程语言。我对语法感到满意,并且我已经完成了许多只教授相同基础知识的教程。我已经写了一些小程序(包括我自己的数组排序方法,在有人告诉我谷歌“冒泡排序”之前我认为它非常聪明),但我觉得我需要尝试更大更难的东西来理解更多关于Ruby.关于如何执行此操作的任何想法?

  2. ruby - Ruby基础知识 - 2

    Asitcurrentlystands,thisquestionisnotagoodfitforourQ&Aformat.Weexpectanswerstobesupportedbyfacts,references,orexpertise,butthisquestionwilllikelysolicitdebate,arguments,polling,orextendeddiscussion.Ifyoufeelthatthisquestioncanbeimprovedandpossiblyreopened,visitthehelpcenter提供指导。已关闭8年。什么是学习ruby语言

  3. ruby - 条件语句出现在表达式之前还是之后有关系吗? - 2

    如果这是一个愚蠢的问题,我很抱歉,但我是一个在ruby​​周围摸索的C#人..在ruby​​中,我注意到很多人这样做:do_something(withparams)if1=1那个和这个之间有什么区别吗(甚至是轻微的):if1=1do_something(withparams)还是为了更清楚而写的相同内容? 最佳答案 后者在句法上是无效的。你需要写:if1==1thendo_something(withparams)end单行条件句必须始终尾随。是的,有区别。试试这些:bar1=iffoo1=14foo1*3end#=>42bar2

  4. ruby - Head 用法未知选项 -1/-n 错误。可能与 ruby 有关 - 2

    我在OSX10.9.1中启动终端时反复出现问题。每次启动终端时,我都会重复以下至少30次Unknownoption:1Usage:head[-options]...-musemethodfortherequest(defaultis'HEAD')-fmakerequestevenifheadbelievesmethodisillegal-bUsethespecifiedURLasbase-tSettimeoutvalue-iSettheIf-Modified-Sinceheaderontherequest-cusethiscontent-typeforPOST,PUT,CHECKIN-

  5. ruby - 我应该具备哪些 Ruby 知识? - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我刚刚发现了whatc#knowledgeshouldIhave?问题和想知道的相同,但对于Ruby。我认为Ruby是我最喜欢的编程语言,除了学习基础知识外,至少我从众多RubyonRails项目和一些Ruby脚本中学到的东西,我还尝试通过阅读像Gluttonous这样的博客来学习。,O'ReillyRuby,OlaBini,和PolishingRuby.

  6. ruby - 如何打印有关 NET :HTTPRequest for debug purposes? 的信息 - 2

    我是从Java转过来接触Ruby的新手。我正在尝试发出一个httpget请求,我得到一个400的http响应代码。我通过http调用的服务非常特殊,我很确定我的请求不完全正确。“深入了解”req会很有帮助在我执行head请求(如下)以仔细检查正在发送的request_headers是否是我认为我正在发送的内容之后。有没有办法打印出req对象?req=Net::HTTP.new(url.host,url.port)req.use_ssl=trueres=req.head(pathWithScope,request_headers)code=res.code.to_iputs"Respon

  7. Unity基础知识之顶点吸附、创建组合体 - 2

    Unity基础知识之顶点吸附、创建组合体一、顶点吸附顶点吸附:选择物体后按住键盘上的V键,鼠标定点定位,再拖拽到目标物体对齐即可。注:操作成功后先松V键。1、两个平面Plane的顶点吸附2、两个物体cube的顶点吸附二、创建组合体(子弹)组合体子弹由2个capsule(胶囊)、1个cylinder(圆柱体)组成,如图先创建这3个对象。再将其中一个capsule按照一定比例缩小,将三个对象按照一定位置放置好。创建一个GameObject,将三个对象放在该GameObject里,这样就是父子结构。为创建的组合体即子弹可以添加材质Material:在assets目录下新建Material,选择颜色后

  8. 【操作系统】十分钟了解关于TCP/IP网络的基础知识(二)ARP、路由器、DHCP、DNS以及TCP/IP - 2

    承接上篇文章(十分钟了解关于TCP/IP网络的基础知识)五.ARP(地址解析协议)        虽说使用IP地址确实方便了我们使用者记忆以及整理归类、寻找信息的发送目的地,但是最终接收数据的地方,还是MAC地址,于是乎,为了实现有IP地址到MAC地址的转换,引入了名为ARP(AddressResolutionProtocol)又称之为地址解析协议。      ARP通过广播(Broadcast,这是个专业名词,后面还会继续提起)的方式对LAN中所有的计算机提问:“哎,谁IP地址是10.165.7.116(上篇文章中的例子)呀?你MAC地址多少啊,快过来登记一下!”,如果有哪台计算机回复了MA

  9. javascript - 我应该如何开始学习 JavaScript、jQuery 等?我的编程知识为零 - 2

    关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我是设计出身。我的编程知识是零。在学习了XHTML和CSS之后,我想学习并掌握JavaScript、jQuery等。我应该如何开始?这将是我第一次尝试编程。我可以使用和编辑现成可用的jQuery/JavaScript脚本,但我不能自己制

  10. javascript - ESlint 是否有关于函数中第一个语句之前的空行的规则? - 2

    由于ESLint,我发现了一个规则newline-before-return关于return语句之前的空行。但是在函数的第一条语句之前没有看到关于空行的规则。例如:function(a){varb=+a;}ESlint对此有规定吗?如果有,这条规则的名称是什么?谢谢 最佳答案 padded-blocks规则允许您在block的开始和结束处要求换行,包括函数体。除了函数体之外,它还涵盖了if语句、for和while循环以及其他类似block的结构体,您可以可能想要也可能不想要。尝试将以下代码粘贴到demo中,看看它是否适合您:/*es

随机推荐