news 2026/6/21 3:03:15

一个开源、简单、快速的 .NET Word 模板引擎

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一个开源、简单、快速的 .NET Word 模板引擎

致力于挖掘功能强大、性能优越、创新前沿且简单易用的 C#/.NET 开源框架、项目、类库与工具。助力 .NET 开发者轻松解锁并运用这些实用的宝藏资源,提升开发效率与创新能力!

项目概述

MiniWord 是一个功能强大且易于使用的 .NET Word 模板导出引擎,适用于各种需要动态生成 Word 文档的场景。其跨平台、无需 Office 依赖、简单易用的特点使得它成为开发者理想的文档生成工具。

应用场景

MiniWord 适用于需要动态生成 Word 文档的各种场景,包括但不限于:

  • 报告生成:根据数据库查询结果或业务逻辑动态生成报告。

  • 合同生成:根据用户输入的信息自动填充合同模板。

  • 证书制作:根据用户数据自动生成证书或奖状。

  • 邮件合并:批量生成个性化的邮件或信函。

  • 数据导出:将应用程序中的数据导出为 Word 文档,便于分享和打印。

功能模块

MiniWord 主要包含以下几个功能模块:

模板引擎

  • 模板设计:用户可以使用 Word 设计模板,通过特定的标签占位符来标记需要动态替换的内容。

  • 数据绑定:支持将数据模型绑定到模板中的标签,实现数据的动态替换。

数据替换

  • 文本替换:支持简单的文本替换,将模板中的标签替换为实际的数据值。

  • 图片替换:支持将模板中的图片标签替换为实际的图片。

  • 列表和表格:支持将数组或列表数据绑定到模板中的列表或表格,实现动态生成多行内容。

  • 条件判断:支持在模板中使用条件判断语句,根据数据值决定是否显示某些内容。

  • 循环:支持在模板中使用循环语句,动态生成重复的内容块。

输出格式

  • 文件输出:支持将生成的 Word 文档保存为文件。

  • 字节数组输出:支持将生成的 Word 文档转换为字节数组,便于在网络中传输或存储在数据库中。

  • 流输出:支持将生成的 Word 文档写入到流中,便于直接响应 HTTP 请求。

快速入门

模板遵循“所见即所得”的设计,模板和标签的样式会被完全保留

var value = new Dictionary<string, object>(){["title"] = "Hello MiniWord"}; MiniSoftware.MiniWord.SaveAsByTemplate(outputPath, templatePath, value);

表格替换

标签值为 IEmerable<Dictionary<string,object>>类别

代码例子:

var value = new Dictionary<string, object>() { ["TripHs"] = new List<Dictionary<string, object>> { new Dictionary<string, object> { { "sDate",DateTime.Parse("2022-09-08 08:30:00")}, { "eDate",DateTime.Parse("2022-09-08 15:00:00")}, { "How","Discussion requirement part1"}, { "Photo",new MiniWordPicture() { Path = PathHelper.GetFile("DemoExpenseMeeting02.png"), Width = 160, Height = 90 }}, }, new Dictionary<string, object> { { "sDate",DateTime.Parse("2022-09-09 08:30:00")}, { "eDate",DateTime.Parse("2022-09-09 17:00:00")}, { "How","Discussion requirement part2 and development"}, { "Photo",new MiniWordPicture() { Path = PathHelper.GetFile("DemoExpenseMeeting01.png"), Width = 160, Height = 90 }}, }, } }; MiniWord.SaveAsByTemplate(path, templatePath, value);

二级列表

Tag 是 IEnumerable<MiniWordForeach> 类别. 使用方式{{foreach 和 endforeach}}.

var value = new Dictionary<string, object>() { ["TripHs"] = new List<Dictionary<string, object>> { new Dictionary<string, object> { { "sDate", DateTime.Parse("2022-09-08 08:30:00") }, { "eDate", DateTime.Parse("2022-09-08 15:00:00") }, { "How", "Discussion requirement part1" }, { "Details", new List<MiniWordForeach>() { new MiniWordForeach() { Value = new Dictionary<string, object>() { {"Text", "Air"}, {"Value", "Airplane"} }, Separator = " | " }, new MiniWordForeach() { Value = new Dictionary<string, object>() { {"Text", "Parking"}, {"Value", "Car"} }, Separator = " / " } } } } } }; MiniWord.SaveAsByTemplate(path, templatePath, value);

源码地址

https://gitee.com/dotnetchina/MiniWord

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 16:33:03

多样化算力使能:openFuyao引领算力池化与调度革命

目录一、算力管理的行业痛点与openFuyao的技术定位1.1 行业核心痛点解析1.2 openFuyao的技术定位与核心价值二、openFuyao多样化算力资源池化技术2.1 资源池化架构&#xff1a;分层设计&#xff0c;弹性伸缩2.2 资源监控与可视化&#xff1a;全链路可观测三、openFuyao算力调度…

作者头像 李华
网站建设 2026/6/15 20:03:08

51单片机:了解最小核心系统

目录 一、最小核心系统的核心定义与作用 1. 核心定义 2. 核心作用 二、最小核心系统的组成&#xff08;拆解到每一个元件&#xff09; 三、各模块的核心工作原理&#xff08;极简版&#xff09; 1. 电源电路&#xff1a;稳定供电 滤波 2. 时钟电路&#xff1a;提供 “时…

作者头像 李华
网站建设 2026/6/17 17:57:52

C# 委托/事件/UnityEvent 详解

1. 委托 (Delegate)1.1 基本概念委托是C#中的一种类型&#xff0c;它允许将方法作为参数传递&#xff0c;类似于C/C中的函数指针&#xff0c;但类型安全。1.2 委托声明与使用基本语法&#xff1a;csharp// 1. 声明委托类型 delegate void MyDelegate(string message); delegate…

作者头像 李华
网站建设 2026/6/17 3:41:39

chrome英文翻译插件

插件下载地址 https://immersivetranslate.com/download/ 基本设置 快捷键

作者头像 李华
网站建设 2026/6/20 16:06:43

量子计算+机器学习调试实战(VSCode高阶技巧全公开)

第一章&#xff1a;量子机器学习的 VSCode 调试在开发量子机器学习应用时&#xff0c;调试是确保算法逻辑正确性和性能优化的关键环节。Visual Studio Code&#xff08;VSCode&#xff09;凭借其强大的扩展生态和灵活的调试配置&#xff0c;成为量子计算开发者首选的集成开发环…

作者头像 李华