分享一个导出数据到 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 ...
随机推荐
- 转:SSE:服务器发送事件
原文来自于:http://javascript.ruanyifeng.com/htmlapi/eventsource.html 目录 概述 客户端代码 概述 建立连接 open事件 message事件 ...
- BZOJ 1028 麻将
Description 麻将是中国传统的娱乐工具之一.麻将牌的牌可以分为字牌(共有东.南.西.北.中.发.白七种)和序数牌(分为条子.饼子.万子三种花色,每种花色各有一到九的九种牌),每种牌各四张.在 ...
- HTML入门教程(全套)
http://www.rm5u.com/html_html.html http://learn.shayhowe.com/ moe.mwulu.com http://www.w3school.co ...
- RR模式下利用区间锁防止幻读,RC模式没有区间锁会出现幻读
Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> select * from ...
- HDU 2476 String painter(记忆化搜索, DP)
题目大意: 给你两个串,有一个操作! 操作时可以把某个区间(L,R) 之间的所有字符变成同一个字符.现在给你两个串A,B要求最少的步骤把A串变成B串. 题目分析: 区间DP, 假如我们直接想把A变成B ...
- 线性代数(矩阵乘法):NOI 2007 生成树计数
这道题就是深搜矩阵,再快速幂. #include <iostream> #include <cstring> #include <cstdio> #include ...
- 高等数学(拉格朗日乘子法):NOI 2012 骑行川藏
[NOI2012] 骑行川藏 输入文件:bicycling.in 输出文件:bicycling.out 评测插件 时间限制:1 s 内存限制:128 MB NOI2012 Day1 Des ...
- 【模拟】CSU 1807 最长上升子序列~ (2016湖南省第十二届大学生计算机程序设计竞赛)
题目链接: http://acm.csu.edu.cn/OnlineJudge/problem.php?id=1807 题目大意: 给你一个长度为N(N<=105)的数列,数列中的0可以被其他数 ...
- 【高精度】Vijos P1010 清帝之惑之乾隆
题目链接: https://vijos.org/p/1010 题目大意: 多组数据,求R的n次幂(R为不超过9999.9的小数 n<=200)R保证占6位 不输出前导0和后缀0,整数就只输出整数 ...
- traits编程技法
看了<stl源码剖析>中关于traits的部分,由于对模板还不是很熟悉,就看了一下还未完工的C++ Template 进阶指南 ,感觉收获很大,推荐一下. 在使用迭代器时,为了知道它的相应 ...