`
javatoyou
  • 浏览: 1022215 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

“在ASP.NET程序中以高效、轻量方式生成格式丰富的Excel文件”方案!

 
阅读更多
原作者: myprojects@126.com

在ASP.NET程序中可以使用COM编程来生成Excel文件,但是使用COM组件需要在服务端安装Excel程序和配置COM组件,而且还要强制杀死Excel进程,这样对系统的部署和性能都不够理想。所以希望大家推荐一下自己使用过的好的控件或者方案,要求如下:
1. 生成的Excel文件可以设置格式:
a. 必须支持字体大小、颜色、合并单元格等设置;
b. 最好能支持页边距、的设置;
c. 最好能支持Excel文件横向、纵向设置;
d. 最好能支持Excel模板文件的加载;
e. 但是不必支持图表的显示和绘制,也就是说Excel文件中只需要显示文字。
2. 服务端不用安装Excel程序;
3. 生成的excel文件在客户端打开的时候至少能兼容Excel2003,Excel XP,最好还能兼容Excel2000。
4. 性能比较好;
5. 最好是可用的开源控件或者是完整可用的源代码;退而求其次是功能不受限制的免费控件;再次是功能受限制的免费控件;最后是破解控件也行(当然,你需要告诉我们破解的方法和工具,我的邮箱:hawk_yinjun@yahoo.com.cn)。

我把目前我使用过的或者找到的方案罗列和总结一下(但这些方案都或多或少没有满足上面提到的要求),有说得不对的地方大家指正:
1.Excel的COM编程
优点:
能编程实现Excel文件的各种格式功能,还支持图表、模板等。
缺点:
a. 重量级方案,部署不方便,需要在服务端安装Excel程序和配置COM;
b. 需要强制杀死Excel进程;
c. 性能低下。
我的感觉:
在C/S中可以考虑使用此方案,在B/S中根本就不用考虑这个方案。

2. HTML导出
优点:
a. 轻量级方案,服务端不用安装Excel程序。
b. 实现简单、方便。
缺点:
a. 不支持Excel文件格式的设置。
我的感觉:
这个方案在网上有相当多的例子,比如gridview导出到excel就用此方法。
如果导出的是纯数据而不需要设置Excel文件的任何格式,那么此方案是可行的。但是,如果需要设置一定的格式,则此方案显然不行。

3. 生成XML然后转换成Excel方式
参考资源:http://www.codeproject.com/office/Excel_Export.asp?df=100&forumid=329437&fr=51
优点:
a. 服务端不用安装Excel程序。
b. 支持一定的Excel文件格式设置,比如字体大小、颜色、合并单元格等。
缺点:
a. 与Excel 2000不兼容:由于Excel 2000不支持XML,所以以这种方法生成的Excel文件可能在Excel2000中不兼容(毕竟目前还有不少用户的电脑装的是Excel 2000)。
b. 可能不支持Excel文件页边距的设置;不支持Excel文件横向、纵向的设置;不支持Excel模板;
c. 编程工作量比较大;
d. 生成的文件本质上是XML文件,需要“另存为xls”才能变成真正的Excel文件。
e. 性能是好是坏还不清楚,目前还没真正在项目中用过。希望有用过此方案的朋友能介绍一下这个方案的性能。
我的感觉:
如果生成的Excel文件不需要设置复杂的格式(也就是说只需要设置一些简单的格式),这个方案是可行的。

4. 以二进制的形式编程写Excel文件
这种方案涉及底层的东西,我们不用考虑。

5.付费控件
5.1 GemBox控件
http://www.gemboxsoftware.com/Index.asp
优点:
几乎满足前面提到的所有要求,除了有一个缺点以外。
缺点:
GemBox是付费控件,而且价格不便宜。
它同时提供免费版本的控件(http://www.gemboxsoftware.com/GBSpreadsheetFree.htm),但是功能受到严重限制:一个Excel文件最多只能生成5个WorkSheet,每个WorkSheet最多生成150行数据。
如果你有破解版本或者知道如何破解,希望你能共享(我的邮箱是myprojects@126.com)
我的感觉:
我已经在一个项目中使用这个免费版本的控件,感觉非常不错。如果生成的数据少于150条,那么使用这个控件非常合适,但是如果数据数量超过150条,那就只能放弃。

5.2 Aspose.Excel
和GemBox差不多,几乎满足前面提到的所有要求。就是付费软件。
我的感觉:
以前曾经有个朋友推荐我使用这个控件的破解版本。但是奇怪的是:用注册机在一台服务器上生成的注册码能用,但是在另一台服务器上用同样的方式破解就不行, 后来就放弃使用这个控件,因为我担心的是这个破解控件在开发用服务器上能运行,不能确保部署到客户生产服务器上也会正常运行。可能是我破解不当,如果你有 这方面的使用经验请慷慨介绍。

6. 开源控件或者功能不受限制的控件
目前还没找到合适的,希望大家尽情推荐。
分享到:
评论

相关推荐

    asp.net知识库

    在ASP.NET中使用WINDOWS验证方式连接SQL SERVER数据库 改进ADO.Net数据库访问方式 ASP.NET 2.0 绑定高级技巧 简单实用的DataSet更新数据库的类+总结 [ADO.NET]由数据库触发器引发的问题 为ASP.NET封装的SQL数据库...

    使用VML在asp.net中做统计图的的绝佳示例(柱状,饼状图)--超级轻量

    使用VML在asp.net中做统计图的的绝佳示例(柱状,饼状图)--超级轻,不使用任何第三方插件,只是以生成脚本的形式,完成图表的绘制

    通用Easyui开发框架源码(For Asp.NET)

    在实施SOA的过程中,可以自己使用WCF+WF搭建一个小型轻量级的SOA框架,也可以使用诸如Biztalk等软件。 三、注意事项: 1、开发环境为Visual Studio 2010及以上,数据库为SQL Server 2008R2,数据库文件在DB文件夹中...

    asp.net博客系统

    本博客采用ASP.NET2.0 c# + MSSQL2005 + XML + jquery + anthem.net开发,暂时为单用户版本,以下简单介绍... 程序基于类似petshop的标准三层架构,方便维护与扩展(不过暂时只支持MSSQL数据库-_-||) 前台使用...

    Asp.net+MVC4+CMS+CRM+OA+MSSQL企业级项目完整源码

    上传模块:通用upload handler,及缩略图生成方式(按需生成,即时生成,延迟生成) 管道模块:通用HttpModule,用于注入通用功能到各个应用及网站 应用模块三层架构 提供OA,CMS,CRM系统的原型及DAL,IBLL及BLL实现 ...

    jquery ajax TreeView asp.net改进版

    都做了进去(Newtonsoft.jsonnet2.0.dll),,采用ajax+wrapperpage+usercontrol的模式生成json(因为牵涉公司两个配置文件,必须读配置信息连接数据库,绕了一下其实可以更轻量级的handler来处理,例子不能运行,但...

    基于Asp.net和Flex的网络硬盘源码

    基于Asp.net和Flex的网络硬盘源码 可以实现多用户管理,进行用户注册,创建文件夹和文件上传 smark.data是基于C#开发的轻量级数据访问组件。 提供以下功能封: 1)提供了跨数据库类型操作能力 2)基于程线存储的数据...

    asp.net4.0/4.5局域网共享系统

    asp.net4.0/4.5局域网共享系统 需iis轻量级发布工具根目录下 file存文件 文档存在file/text目录 自动文档生成html 文件 无需配置数据库,基于文件系统,源代码!轻量级iis请在 我其他资源下载页面下载...

    一款ASP+Access开发的轻量级CMS------AMCms

    AMCms是一款ASP+Access开发的轻量级CMS, 适合建立中小型企业建站. 它主要有以下功能特点 支持模版生成静态HTML页 可以任意的自定义模版文件和生成的文件名格式, 用栏目的名称也可以生成URL, 方便SEO 模版支持SQL...

    推荐.NET下JSON应用大全全解析

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它易于编程人员阅读和编写,同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的...

    ASP.NET 通用权限管理系统_用户的分级管理实现

    权限管理涉及的东西太多了,他需要涉及到数据库、要涉及到用户、组织机构、角色、日志、序列生成器、开发框架、甚至代码生成器,页面操作、底层存储结构设计等等方方面面,说是开发通用权限组件还不如是说:“轻量级...

    evolutility-asp.net:轻量级CRUD框架,可使用ASP.net和MS-SQL Server进行繁重的工作

    Evolutility-ASP.net Evolutility是用于在ASP.net和SQL Server或MySQL上运行的CRUD(创建,读取,更新,删除)应用程序的通用Web用户界面。 它完全由元数据驱动,并且可以适应不同的数据库结构。 它的行为可能类似于...

    Asp.net(MVC4)CMS+CRM+OA源码

    上传模块:通用upload handler,及缩略图生成方式(按需生成,即时生成,延迟生成) 管道模块:通用HttpModule,用于注入通用功能到各个应用及网站 应用模块三层架构 提供OA,CMS,CRM系统的原型及DAL,IBLL及BLL实现 ...

    支持.Net和.Net Core的网站框架ZKWeb.zip

    可以在这基础上实现可视化编辑支持对页面中的部分内容进行单独缓存,可以大幅提升页面的响应速度IoC容器轻量且快速默认支持使用属性注册程序集中的类型到容器支持构造函数注入支持多个框架的托管支持托管在Asp.Net...

    将成asp.net2.0(c#)+access版空气污染气象学教学计算辅助软件 v 1.0.rar

    说明:该软件名为“大气污染气象学教学计算辅助软件”,实质是一个轻量级的计算软件,javascript + asp.net2.0(c#) + access设计开发,计算的所有才操作封装在JC.dll,是一款专门为大气污染气象学教学的计算辅助软件...

    C#与.NET技术平台实战演练.part1

    2 建立并使用delegate类型建立delegate类型l3-3 事件13-3-1 在事件发行者中定义一个事件13-3-2 在事件发行者中触发事件13-3-3 在事件订阅者中定义事件处理常式13-3-4 向事件发行者订阅一个事件l3-4 链接....

    .net开源的综合开发框架wojilu框架.zip

    (可以和 asp.net webform/mvc 无缝整合,具体整合方案,欢迎联系官网购买技术服务)特别推荐:真正跨平台:除了windows,还可以在linux上完美运行。手机自适应:高级版针对移动设备做了特别优化,完美自适应。可以...

    Documenter:WebAPi轻型文档生成器

    记录员Asp.net WebApi的轻量级文档生成器。 查看生成的默认情况下,Documenter会生成降价文档,但您可以开发自己的附加程序。 var generator = Rocket . Web . Documenter . Core . DocumentHelper ();generator . ...

    一款值得推荐的.Net微信开发SDK.zip

    关于扩展性在消息处理过程中采用了管道模式的设计,借鉴了Open Web Interface的思想和一些规范来打造整个消息处理的模型,使消息处理变得更加轻便。同时SDK内部内置了一个简单的依赖注入实现 IDependencyResolver,...

Global site tag (gtag.js) - Google Analytics