二十七、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
中注入 实例,如:
关于 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 导入
最后更新于