分享一个导出数据到 Excel 的类库
起源:
之前在做一个项目时,客户提出了许多的导出数据的需求:
- 导出用户信息
- 导出业务实体信息
- 各种查询都要能导出
- 导出的数据要和界面上看到的一致
- 可以分页导出
- 。。。
为了应对用户的这些需求,我决定先写一个能够满足这些需求的导出功能封装库,于是就有了这个类库。
选材:
导出 Excel 完全靠自己写是不太实际的,因此需要使用一些现成的东西,目前导出 Excel 大约有一下方法:
- 使用 COM 组件
- 使用 OpenXMLSDK
- 使用 NPOI
使用 COM 组件,效率较低
使用 OpenXmlSDK,目前智能生成 Office 2007 格式,还不够通用
NPOI 是一个开源库,从 java 的 POI 中移植而来,支持 Office 2003 以前的格式,也具有较高的性能。
因此,我决定对 NPOI 进行一个封装,于是就有了这个类库。下面介绍一下这个类库。
类库介绍
本类库通过对数据源的抽象,提取了一个接口,来支持多种数据源,并且提供了一些常见的实现。
随类库提供了一个演示程序,演示了本类库支持的主要特性。
类库封装了 NPOI,为了支持分页,使用了 SharpZipLib 来打包文件,这两个都是开源的类库,本类库的项目中已经包含这两个类库编译好的版本,如果需要他们的源代码,可以自行到相应的官方下载地址下载。
打开解决方案文件 Baiynui.Exports\Baiynui.Exports\Baiynui.Exports.sln,就可以打开本类库的源代码工程和演示工程。
适用场景
- 本类库是为解决批量数据导出的问题而设计的,对批量数据的导出提供回调过滤的操作,可以方便的控制导出的数据。
- 导出需要一个数据源,数据源是一个接口,可以自行实现。本类库中自带一些实现,可以导出 DataTable,DataSet,DataGridView 等
- 支持分页
不适用场景
本类库对需要格式定制的 Excel 没有考虑,不能满足此种需求
最后强调,打开解决方案文件 Baiynui.Exports\Baiynui.Exports\Baiynui.Exports.sln,就可以打开本类库的源代码工程和演示工程,祝你使用愉快,如果在使用的过程中遇到任何问题,都可以联系我。
类库下载地址:http://files.cnblogs.com/baiynui/Baiynui.Exports.rar
应一位朋友的要求,给他写了一个在 ASP.NET 中导出的示例,大家可以参考。http://files.cnblogs.com/baiynui/exportxls.rar
分享一个导出数据到 Excel 的类库的更多相关文章
- 一个方便且通用的导出数据到 Excel 的类库
一个方便且通用的导出数据到 Excel 的类库 起源: 之前在做一个项目时,客户提出了许多的导出数据的需求: 导出用户信息 导出业务实体信息 各种查询都要能导出 导出的数据要和界面上看到的一致 可以分 ...
- python 导出数据到excel 中,一个好用的导出数据到excel模块,XlsxWriter
最近公司有项目需要导出数据到excel,首先想到了,tablib,xlwt,xlrd,xlwings,win32com[还可以操作word],openpyxl,等模块但是 实际操作中tablib 写入 ...
- 1.ASP.NET MVC使用EPPlus,导出数据到Excel中
好久没写博客了,今天特地来更新一下,今天我们要学习的是如何导出数据到Excel文件中,这里我使用的是免费开源的Epplus组件. 源代码下载:https://github.com/caofangshe ...
- 导出数据到Excel --使用ExcelReport有感
先看图,这是几个月前用NPOI写的导出数据到Excel,用了上百行代码,而且难控制,导出来也比较难看 excel打开的效果 下面是我用ExcelReport类库导出到Excel的操作 1.首先引用Ex ...
- MVC导出数据到EXCEL新方法:将视图或分部视图转换为HTML后再直接返回FileResult
导出EXCEL方法总结 MVC导出数据到EXCEL的方法有很多种,常见的是: 1.采用EXCEL COM组件来动态生成XLS文件并保存到服务器上,然后转到该文件存放路径即可: 优点:可设置丰富的EXC ...
- 利用PHPExcel读取Excel的数据和导出数据到Excel
PHPExcel是一个PHP类库,用来帮助我们简单.高效实现从Excel读取Excel的数据和导出数据到Excel.也是我们日常开发中,经常会遇到的使用场景.比如有个客户信息表,要批量导出发给同事,我 ...
- 导出数据到Excel方法总结
一,问题的提出 近来在网上经常有人问怎样把数据导出到Excel中?针对这个问题网上也有很多资料.大都比较的琐碎.本人当前从事的项目中,刚好涉及到这些内容.就顺便做了一些归纳整理.共享给大家.避免大家再 ...
- phpexcel如何读取excel的数据和如何导出数据到excel
phpexcel如何读取excel的数据和如何导出数据到excel 一.总结 一句话总结:去官网看参考手册和api,或者找中文的博客或者参考手册 1.phpexcel插件如何下载? 其实这些插件不仅可 ...
- Dynamics CRM导出数据到Excel
原创地址:http://www.cnblogs.com/jfzhu/p/4276212.html 转载请注明出处 Pivot Table是微软BI的一个重要工具,所以这里讲一下Dynamics CRM ...
随机推荐
- 不定参数函数原理以及实现一个属于自己的printf函数
一.不定参数函数原理 二.实现一个属于自己的printf函数 参考博文:王爽汇编语言综合研究-函数如何接收不定数量的参数
- 图片的css自适应
当需要css来缩放图片的时候,可以采用外层容器100%或者任意百分比, 内层图片img tag 没有宽高,用sass写经过断点后的mixin中的样式就是这样: .workscon_section{ w ...
- C#程序设计基础——运算符与表达式
运算符就是完成操作的一系列符号,它主要包括算术运算符.赋值运算符.关系运算符.逻辑运算符.条件运算.位操作运算符和字符串运算符. 表达式就是运算符和操作数的组合,如a*b+1-c.表达式主要包括算术表 ...
- Android Wear开发 - 数据通讯 - 第零节 : 打包Wear应用(手机和手表应用如何连接)
之所以将打包这一特殊的内容作为数据通讯的第零节,是因为如果没有通过配置打包的一些信息,则没有办法将手机端应用和手表端应用连接起来,则无法继续进行接下来的数据通讯的开发. 以下依然只针对Eclipse平 ...
- java学习面向对象之this
在我们讲构造函数的时候,我们知道,如果同时在java的堆内存当中,同时存在好几个刚进内存,但是又没来得及初始化的同一个类的对象.在这种情况下,那么如何去区分栈内存当中的构造函数是属于那个对象的呢,其实 ...
- BZOJ 1048 [HAOI2007]分割矩阵
1048: [HAOI2007]分割矩阵 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 623 Solved: 449[Submit][Status ...
- 字符串(KMP):BZOJ 3670 [Noi2014]动物园
3670: [Noi2014]动物园 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1521 Solved: 813[Submit][Status] ...
- SQLCMD的用法,使用CMD 执行sql语句
SQLCMD的用法,使用CMD 执行sql语句 SQLCMD 允许在Windows命令窗中通过命令行提示符运行脚本. 语法如下: sqlcmd [ { { -U <login id> ...
- 浅谈层次化的AI架构
原文地址:http://www.aisharing.com/archives/86/comment-page-1 记得在以前的一篇文章中谈到了一种类似于双缓冲的AI结构,最近在整理一些东西的时候,发现 ...
- HOWTO:保存nohup日志
默认情况下,nohup的日志将保存在一个名为nohup.out的文件中.随着时间的推移,nohup.out文件会变得越来越大,直到某一天程序莫名的崩溃.这种情况是可以预防的,有很多策略都可以解决这个问 ...