当前位置: 首页 > news >正文

一个开源、简单、快速的 .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

http://www.jsqmd.com/news/73894/

相关文章:

  • XUnity Auto Translator 仿写文章创作Prompt
  • Vue-Office Excel预览空白问题深度解析与完整解决方案
  • 模拟手游买量市场:“平稳”之下,如何表现出彩?
  • 多人语音聊天室APP开发全解析:从技术架构到运营策略
  • 【Flutter跨平台开发鸿蒙应用跟练项目3.2】- GitCode口袋工具应用项目网络请求封装及搜索功能实现
  • 多任务的讲解
  • 合并两个有序链表:双指针迭代法实现(C++)
  • B站视频转文字神器:5分钟快速上手指南
  • 第十篇 文件上传
  • 第九篇 异常统一处理
  • 万字长文解析润乾NLQ破局Text2SQL,兼得灵活复杂准确
  • 腾讯实验室发布智能机器人导航突破:让AI像人类一样理解空间
  • 27、游戏开发:物理引擎与瓦片地图的运用
  • Typora代码块痛点破解方案
  • Wan2.2-T2V-A14B已接入某头部视频平台AI剪辑工具链
  • 基于 openFuyao 的 AI 推理加速实战:智能路由与 PD 分离式 KVCache 架构揭秘
  • 2025 年 QMS 质量管理软件权威推荐榜:智能工厂与精益制造必备的数字化管控利器 - 品牌企业推荐师(官方)
  • Java计算机毕设之基于Springboot+Vue的高校大学生心理咨询管理系统基于springboot高校大学生心理咨询管理系统(完整前后端代码+说明文档+LW,调试定制等)
  • 人工智能大模型技术突破:引领智能时代新纪元
  • 2025 年建筑加固技术权威推荐榜:碳纤维加固、粘钢加固等创新工艺深度解析与优质服务商精选 - 品牌企业推荐师(官方)
  • CVPR 2025最佳论文突破:DepthCrafter实现开放世界视频深度序列生成新范式
  • 微服务分布式事务实战:从数据一致性到故障恢复全方案
  • 140亿参数模型本地部署指南:Wan2.2-T2V-A14B安装与调优
  • 突破跨模态生成瓶颈:Step-Video-TI2V开创图生视频技术新范式
  • ViGEmBus:Windows游戏控制器模拟技术深度解析
  • 地平线苏治中:开源框架和基础模型赋能具身智能行业
  • Wan2.2-T2V-A14B能否生成企业年会创意短片?内部文化传播解决方案
  • 54、深入探索Shell编程:命令、变量与模式匹配的综合指南
  • C# 委托/事件/UnityEvent 详解
  • Wan2.2-T2V-A14B在综艺节目花絮自动生成中的尝试