前言
在数字化办公日益盛行的今天,文档处理成为了我们日常工作不可或缺的一部分。然而,许多传统的文档处理工具都依赖于特定的操作系统和复杂的组件安装,这无疑给跨平台办公带来了诸多不便。为了解决这一问题,我们找到了一个新的开源项目的MiniWord —— 一款基于.NET的Word(docx)模版导出引擎,无需安装Office COM+,完美支持Linux和Mac操作系统。
MiniWord .NET Word模板引擎,由Word模板和数据简单、快速生成文件。
主要特点
轻量级设计,高效稳定
MiniWord采用轻量级设计,核心代码精简而高效,确保了在不同操作系统上的稳定运行。无论是Windows、Linux还是Mac,都可以轻松使用MiniWord进行文档处理,无需担心兼容性问题。
强大的模板功能,满足个性化需求
MiniWord提供了丰富的模板功能,支持自定义模板设计,让文档更具个性化和专业性。可以通过简单的模板编辑,快速生成符合要求的Word文档,提高工作效率。
简单易用,快速上手
深知用户对于操作简便性的需求,因此MiniWord在界面设计和功能布局上力求简洁明了。无论是初学者还是资深用户,都可以在短时间内快速掌握MiniWord的使用方法,轻松应对各种文档处理需求。
安装使用
dotnet add package MiniWord --version 0.8.0
快速入门
模板遵循“所见即所得”的设计,模板和标签的样式会被完全保留
var value = new Dictionary<string, object>(){["title"] = "Hello MiniWord"};
MiniSoftware.MiniWord.SaveAsByTemplate(outputPath, templatePath, value);
输入、输出
输入系统支持模版路径或是Byte[]
输出支持文件路径、Byte[]、Stream
SaveAsByTemplate(string path, string templatePath, Dictionary<string, object> value)
SaveAsByTemplate(string path, byte[] templateBytes, Dictionary<string, object> value)
SaveAsByTemplate(this Stream stream, string templatePath, Dictionary<string, object> value)
SaveAsByTemplate(this Stream stream, byte[] templateBytes, Dictionary<string, object> value)
标签
MiniWord 使用类似 Vue, React 的模版字串 {{tag}},只需要确保 tag 与 value 参数的 key 一样(大小写敏感),系统会自动替换字串。
文本
{{tag}}
代码例子
var value = new Dictionary<string, object>()
{["Name"] = "Jack",["Department"] = "IT Department",["Purpose"] = "Shanghai site needs a new system to control HR system.",["StartDate"] = DateTime.Parse("2022-09-07 08:30:00"),["EndDate"] = DateTime.Parse("2022-09-15 15:30:00"),["Approved"] = true,["Total_Amount"] = 123456,
};
MiniWord.SaveAsByTemplate(path, templatePath, value);
模版
导出
图片
标签值为 MiniWordPicture 类别
代码例子
var value = new Dictionary<string, object>()
{["Logo"] = new MiniWordPicture() { Path= PathHelper.GetFile("DemoLogo.png"), Width= 180, Height= 180 }
};
MiniWord.SaveAsByTemplate(path, 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 类别. 使用方式{{foreach 和 endforeach}}.
Example
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);
Template
Result
尽管MiniWord无需安装Office COM+,但它依然能够完美兼容各种Word文档格式,确保文档在处理过程中的格式一致性和内容完整性。可以在不同的设备和操作系统之间无缝对接,实现文档的轻松共享和协作。还有更多的案例,感兴趣的可以一试。
源码地址
https://github.com/blueskit/MitsubishiPlcProtocol
写在最后(私活源码)
今天给大家分享一套基于Springboot+Vue的仓库管理系统源码,在实际项目中可以直接复用。(免费提供,文末自取)
一、系统运行图(设计报告和接口文档)
1、登陆页面
2、物品信息管理
3、设计报告包含接口文档
二、系统搭建视频教程
源码免费领取方式
扫码关注本号,回复 仓库
扫码关注本号,回复 仓库
持续关注,有更多私活源码免费分享