首 页 | 新 闻 | 技术中心 | 第二书店 | 《程序员》 | 《开发高手》 | 社 区 | 黄 页 | 人 才
移 动专 题SUNIBM微 软微 创精 华Donews人 邮
我的技术中心 
我的分类 我的文档
全部文章 发表文章
专栏管理 使用说明



 RSS 订阅 
最新文档列表
Windows/.NET
.NET  (rss)    
Visual C++  (rss)    
Delphi  (rss)    
Visual Basic  (rss)    
ASP  (rss)    
JavaScript  (rss)    
Java/Linux
Java  (rss)    
Perl  (rss)    
综合
其他开发语言  (rss)    
文件格式  (rss)    
企业开发
游戏开发  (rss)    
网站制作技术  (rss)    
数据库
数据库开发  (rss)    
软件工程
其他  (rss)    

积极原创作者 
wangchinaking (57)
yjz0065 (113)
coofucoo (105)
Drate (69)
lphpc (30)
smallnest (61)
iiprogram (64)
downmoon (32)
danny_xcz (49)
btbtd (81)
CSDN - 文档中心 - .NET 阅读:13863   评论: 9    参与评论
标题   在ASP.NET下用Microsoft Excel进行数据分析与报表     选择自 tonnycncn 的 Blog
关键字   excel
出处   http://www.asp101.com/articles/jayram/exceldotnet/default.asp

总述
在数据分析和生成报表方面,Excel是一款非常强大的工具。嵌入VB.NET里可以做在Excel下做的工作。在财务行业工作的人都知道不管怎样Excel已被广泛使用。在Excel下工作时,商业人员往往比开发人员更熟练地使用Excel。在很长一段时间,软件将向分布式计算和N层结构发展。过去,当数据被存储在Access数据库或一般文件中,我们会手工地将数据输入到Excel文件中并利用这些数据去做一些商业运作。在Internet自动化对象应用的今天,这篇文章聚焦于怎么得到最好的信息。

Excel and ASP.NET
Excel的自动化对象和用VB写Excel宏并不是本文的标题。在网上有很多网站和资源有这方面的资料。这篇文章仅讨论怎样在Internet环境(ASP.NET)下使用Excel。

目的
这篇文章的目的主要是介绍在ASP.NET下Excel的数据分析功能应用。本文将聚焦于怎样在internet上得到最好的Excel模板和快速地反应数据。

关于例子
本文大体上具有教育目的,在例子中的方法并不一定能直接用于实际的产品环境下。本文主旨在于揭示做ASP.NET和Excel时的一些方法和概念。

例1,Excel报表演示(输出HTML)[此文中源码]


安全
本文和例子是基于服务端Excel的自动化对象。这个方法有一些缺点和需要注意的地方。请查看本文“附加的源码”。如果Excel自动化对象没有被正确地用于当前的WEB服务器上,可能会得到WEB服务器不一致的状态。请注意这些地方,并尽量僻免。

关于Excel 2003的注意事项: Excel 2003有为支持DOTNET的较好的接口。在微软网站上有很多关于Excel 2003和DOTNET的文章。此文中也有些链接。如果你有Excel 2003,本文仅能帮你了解一些概念。

快速浏览
许多第三部分的资料库的帮助可能被建立为较好的在提供图解/曲线图或报表的Internet应用。在这个文章中提议的方法对那些已广泛使用Excel及报表的商业中。通过使用已有的Excel报表模板和通过Internet表现出来。主观地说,当没有更好的解决方案被开发出来,这个方法被当作快速解决方案考虑过。

例子 - Excel报表演示
本文提供的例子是跟据已有的Excel文件建立报表。这个例子也可以从Excelt生成饼图或3D列表图表。最后的报表可以生成为Excel或Html格式。

安装并运行下面的例子
·下载?362 KB) 并解压到本地。http://www.asp101.com/articles/jayram/exceldotnet/EXCEL_REPORTING_IN_ASPNET_SAMPLE.zip
·用IIS建立虚拟目录'ExcelReportDemo',同时把目录指向解压的文件夹。
·运行处执行"dcomcnfg.exe"[DCOM配置工具]
·你将看到 'Distributed COM Configuration Properties' 的窗口
·在'Applications'列表框中双击'Microsoft Excel Application'
·选择'Security'标签
·选择'Use Custom Access Permission'单选框,点‘Edit’按钮
·在'Registry Value Permissions'窗口中确定添加了本地'ASPNET'用户或是本机中能运行ASP.NET进程的用户。
·添加 ASPNET用户后点击OK
·选择'Use Custom Launch Permission'单选框,点‘Edit’按钮
·在'Registry Value Permissions'窗口中确定添加了本地'ASPNET'用户或是本机中能运行ASP.NET进程的用户。

注意:
DCOMCNFG.EXE工具是配置DCOM applications的。在这个例子中,ASP.NET用EXCEL自动化对象并调用Excel Application。通过缺省的本地'ASPNET'用户,特有的ASP.NET进程(并不是扮演被使用的.net的角色)。因此,赋予正确的登录DCOM 'Microsoft Excel Application' 权限给ASPNET用户是很重要的。否则,运行这个例子后,当Excel Application对象被调用时,会抛出'Access Denied'的异常。

软件环境需求:
·Excel 2000 (Version 9.0) [如果你有 Excel 2002 (Version 10.0),请查看例子中的注释部分。
·ASP.NET / .net Framework [Version 1.0或以上版本]

例子的操作流程:
·商业用户把用作报表的Excel电子数据表的复本给开发人员。
·在商业用户的帮助下,开发者排除所有对Excel文件直接的访问再通过Excel文件里的工作表数据驱动报表
·开发者把这个议论放于'ExcelReportDemo'项目的'ReportTemplates'目录下。
·理解了数据源后,开发者查询运行时的数据,并把静态数据代替实际数据的Excel工作表
·excel让我们在工作中得到休息
·如果终端用户请示HTML格式,Excel输出界面挥糜谏蒆TML格式的报表

例子中用到的技术
·ASP.NET用Excel自动化对象调用Excel
·从简单的XML文件读出数据装载。实事上数据可以来自于SQL SERVER或ORACLE数据库。
·自从Excel 2002被用于这个例子,数据集被逐列地复制到Excel。这种被认为是很简单元方法,在传输数据方面是个很有效的方法。
·通过Excel自动化对象是可以访问图表对象和改变图表的所有属性。这个例子并没有用Excel自动化对象去做扩展。


例2:Excel报表演示 - 显示报表请示页面

测试例子: (例2显示报表请示页面)

·在测试例子前,请按照这个列子的安装说明检查。
·把地址http://localhost/ExcelReportDemo/RunReports.aspx输入到地址栏。
·选择'Report Format' [Excel 或 HTML]
·点按钮'Run Report'运行报表
·点按钮'Additional Resources',显示描述服务端自动化对象的附加源码和Excel程序。
·例显示简单的HTML格式报表。

产生临时文件
报表被请求时,这个例子将生成几个临时文件。简单的代码不能与任何自动清理script代码一起进行。请手工删除或编写WMI scripts代码或.bat文件.这些代码或文件不能被WINDOWS调度程序调度去进行自动清理工作。这个代码或文章不能用于简单的部分。

感谢
我要感谢我的夫人Sheela Tallamraju帮助编辑此文。我也要感谢支持我写此文件的Tom Montgomery和Praveen Ray。

附加的资源:
·服务端自动化对象的注意事项 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q257757
·服务端图表 http://support.microsoft.com/default.aspx?scid=kb;EN-US;244049
·来自ADO/ASP的Excel数据 http://support.microsoft.com/default.aspx?scid=kb;EN-US;244049
·WEb页面上操作工作表的函数 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexcl2k/html/webfunc.asp
·Office Web组件应用例子http://support.microsoft.com/default.aspx?scid=kb;EN-US;258187
·服务端Office web组件的限制 http://support.microsoft.com/default.aspx?scid=kb;EN-US;317316
·ADO.net和EXCEL (2003) http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dv_wrcore/html/wrwlkusingadonettoexchangedatawithdatabase.asp

关于作者
Jayram Tallamraju 是一位软件构架师,在波士顿为Bisys Hedge Fund工作的系统分析员,和文件硕士。他是.net MCP(微软认证专家), MCSD(微软认证解决方案开发专家)和SCJD(Sun认证Java开发专家).他还获得电子学硕士,在软件待业工作了十年。他曾主攻构建服务体系和构建可重复使用的商业组件。现在,他的研究领域是微软的技术,有.NET, C#, Web services, ASP.NET, VC++/VB, COM/DCOM, ASP/IIS.
Email: tjayram@yahoo.com


相关文章
对该文的评论
CSDN 网友 ( 2004-11-23)
注意文件权限的问题。我试了各种方法,Excel还是无法正常释放
CSDN 网友 ( 2004-10-15)
测试通过,不过不能在服务器端调试
CSDN 网友 ( 2004-09-11)
对,这个程序不能运行。哎!!!!!!!!!!!!!浪费我的时间!
CSDN 网友 ( 2004-08-23)
asp.net中调用excel进程无法退出的情况,我经过无数次试验后发现,必须在调试的时候选release而不是debug可以退出。如果是debug肯定无法退出。我捕获异常说是“正在关闭线程”,但实际上是关不掉的。可能是因为那个进程是附加在aspnet_wp.exe上吧。
CSDN 网友 ( 2004-07-27)
excel不能完全退出.导致出错!在进程里面有"EXCEL.EXE"
错误信息:
"按取消进行调试,按确定退出!"   [确定] [取消]