1.简介
工作中,遇到需要导入导出execl,导出word需求,还有各种各样的样式,于是有了word模板导出。这类工作不涉及到核心业务,但又往往不可缺少
查询了大量资料,有以下框架/库可以用:
名称是否收费说明
NPOI开源免费不需要服务器安装Office,功能强大
Docx开源免费不需要服务器安装Office,功能强大
Aspose收费不需要服务器安装Office,功能很强大
OpenXml开源免费不需要服务器安装Office,微软提供的组件
Spire收费不需要服务器安装Office,官方有提供免费版本,不过有些限制
最后决定采用 Docx操作word,EPPlus操作execl
由于工作需要,我封装了 Alizhou.Office,目的是最大化节省导入导出这种非核心功能开发时间,专注于业务实现,并且业务端与底层基础组件完全解耦,即业务端完全不需要知道底层使用的是什么基础库,使得重构代价大大降低。
Alizhou.Office底层库目前使用Docx,因此是完全免费的
Alizhou.Office目前提供了
Word根据模板生成:支持使用文本/图片/表格替换,占位符只需定义模板类,制作Word模板,一行代码导出docx文档;
根据实体对execl导入导出;
2.如何使用
2.1安装Alizhou.Office
nuget 搜索并安装 Alizhou.Office
2.2依赖注入
// 注入Office基础服务
services.AddAlizhouOffice();
2.3 IWordExportService - Word通用导出服务
2.3.1定义模板类,模板类需实现IWordExportTemplate空接口
public class WordUserTemplate : IWordExportTemplate
{
///
/// 默认占位符为{PropertyName}
///
public string UserName { get; set; }
///
/// 默认
///
[Placeholder("{电话}")]
public string Phone { set; get; }
//