二十七、OpenXml/Excel 操作
在企业管理系统中,系统对接Office功能是非常常见的需求。
什么是OpenXml
[来自百度百科] Open XML 的标准化工作是由 Ecma International 通过其技术委员会 45 (TC45) 执行的,来自 Apple、Barclays Capital、BP、The British Library、Essilor、Intel、Microsoft、NextPage、Novell、Statoil、Toshiba 和 United States Library of Congress 的代表参与了该项工作。该标准旨在提供现有 ISO 标准所无法提供的独特好处,其中包括能够实现从现有二进制格式向基于 XML 的格式的高保真移植。
OpenXml 官方文档
https://github.com/OfficeDev/Open-XML-SDK
如何使用
在 Hoa Framework 中,基于标准的 OpenXml/ClosedXML 开发的快捷Excel操作方式,可以大大减少Excel的复杂度以及大数据导出性能过高问题。
下面分为两个章节介绍 Excel 导入导出功能。
注入 IWorkbookContext 实例
首先在 Hoa.Applicaiton.HoaApplicationModule.cs 中注入 实例,如:
builder.RegisterGeneric(typeof(WorkbookContext<>))
.As(typeof(IWorkbookContext<>));关于 IWorkbookContext 接口
IWorkbookContext<T>/WorkbookContext<T> 是Hoa Framework 框架独创的操作Excel上下文对象,该对象有三个方法,使用非常简单。
Excel 导出
导出基本类型

导出强类型

更加丰富页面导出

导出并下载到本地
前端Angular下载示例
Get请求
只需要通过 <a href='下载地址'>下载</a> 即可。
Post请求
更多功能
更多功能不断集成开发中,敬请期待。
特性说明
[Excel] 特性配置
配置Excel使用区域信息、样式。
SheetNames:配置Excel多个SheetScale:配置每个Sheet数据比例,比如有两个Sheet,数据有1000条,则:1:3表示第一个Sheet有250条,第二个Sheet有750条。OutsideBorder:配置数据外边框样式,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串InsideBorder:配置数据内边框样式,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串AdjustToContents:是否自动调整内容宽度
[ExcelCell] 特性配置
配置单元格信息、样式。
Name:配置列名,不配置采用属性名BackgroundColor:背景颜色CellType:单元格类型,有(Text:文本类型,Image:图片类型,HyperLink:链接类型)Hyperlink:链接值,如果等于@Value则取单元格的值,只有 CellType=HyperLink有效Tooltip:链接获取焦点提示,只有 CellType=HyperLink有效ImageScale:图片缩放比例,只有 CellType=Image有效AlignmentHorizontal:单元格数据水平对其方式AlignmentVertical:单元格数据垂直对其方式FontSize:字体大小FontBold:是否加粗FontColor:字体颜色Width:单元格宽度OutsideBorder:单元格外边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串InsideBorder:单元格内边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串Border:单元格四个方向边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串,第三个参数是方向BorderDirection枚举类型SetToColumnStyle:是否将单元格样式设置给全局列Format:单元格内容格式,支持OpenXml和StringFormat格式
[ExcelGroup] 特性配置
配置分组单元格信息、样式。
Name:配置列名,不配置采用属性名BackgroundColor:背景颜色CellType:单元格类型,有(Text:文本类型,Image:图片类型,HyperLink:链接类型)Hyperlink:链接值,如果等于@Value则取单元格的值,只有 CellType=HyperLink有效Tooltip:链接获取焦点提示,只有 CellType=HyperLink有效ImageScale:图片缩放比例,只有 CellType=Image有效AlignmentHorizontal:单元格数据水平对其方式AlignmentVertical:单元格数据垂直对其方式FontSize:字体大小FontBold:是否加粗FontColor:字体颜色Height:单元格高度OutsideBorder:单元格外边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串InsideBorder:单元格内边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串Border:单元格四个方向边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串,第三个参数是方向BorderDirection枚举类型SetToColumnStyle:是否将单元格样式设置给全局列Format:单元格内容格式,支持OpenXml和StringFormat格式
[ExcelHead] 特性配置
配置表头信息、样式。
BackgroundColor:背景颜色AlignmentHorizontal:单元格数据水平对其方式AlignmentVertical:单元格数据垂直对其方式FontSize:字体大小FontBold:是否加粗FontColor:字体颜色Height:单元格高度OutsideBorder:单元格外边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串InsideBorder:单元格内边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串Border:单元格四个方向边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串,第三个参数是方向BorderDirection枚举类型Format:单元格内容格式,支持OpenXml和StringFormat格式
[ExcelRow] 特性配置
Index:行索引,(0:不做任何行操作,> 0:特性行操作,-1/-2:奇偶行操作)Name:行的名字(暂未启用该功能)BackgroundColor:背景颜色AlignmentHorizontal:单元格数据水平对其方式AlignmentVertical:单元格数据垂直对其方式FontSize:字体大小FontBold:是否加粗FontColor:字体颜色Height:单元格高度OutsideBorder:单元格外边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串InsideBorder:单元格内边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串Border:单元格四个方向边框,对象数组类型,数组第一个参数为BorderStyle枚举,第二个参数为 颜色值字符串,第三个参数是方向BorderDirection枚举类型
Excel 导入
最后更新于
这有帮助吗?