惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

宝玉的分享
宝玉的分享
NISL@THU
NISL@THU
E
Exploit-DB.com RSS Feed
L
LINUX DO - 热门话题
L
Lohrmann on Cybersecurity
K
Kaspersky official blog
Project Zero
Project Zero
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
T
Threatpost
S
Schneier on Security
G
GRAHAM CLULEY
The Hacker News
The Hacker News
T
Threat Research - Cisco Blogs
Scott Helme
Scott Helme
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Cyberwarzone
Cyberwarzone
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
AWS News Blog
AWS News Blog
Simon Willison's Weblog
Simon Willison's Weblog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
爱范儿
爱范儿
P
Privacy International News Feed
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
S
Securelist
G
Google Developers Blog
The Last Watchdog
The Last Watchdog
Google Online Security Blog
Google Online Security Blog
美团技术团队
F
Fortinet All Blogs
小众软件
小众软件
Recorded Future
Recorded Future
V
Visual Studio Blog
B
Blog RSS Feed
H
Help Net Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Google DeepMind News
Google DeepMind News
Blog — PlanetScale
Blog — PlanetScale
博客园 - 聂微东
Stack Overflow Blog
Stack Overflow Blog
Martin Fowler
Martin Fowler
Latest news
Latest news
Spread Privacy
Spread Privacy
H
Heimdal Security Blog

博客园 - ant-boss

pl/sql转义字符的问题 备份/恢复SQL Server EXP/IMP 命令参数 Programming with the Microsoft Office Visio 2003 ActiveX Control 使用Visio 2003 Drawing Control开发应用(5) 使用Visio 2003 Drawing Control开发应用(4) 使用Visio 2003 Drawing Control开发应用(3) 使用Visio 2003 Drawing Control开发应用(1) 使用Visio 2003 Drawing Control开发应用(2) Visio 2003 开发入门 软件数字签名 水晶报表常见问题(转载) Access 类型转换函数 My97日期控件 My97 DatePicker Ver 3.0.1 showModalDialog 使用TransactionScope 实现事务管理 datagrid数据导出到excel文件给客户端下载的几种方法 VSS(Visual SourceSafe)使用入门 [转] - ant-boss 使用asp.net 2.0和SQL SERVER 2005构建多层应用
在ASP.NET下用Microsoft Excel进行数据分析与报表
ant-boss · 2007-10-08 · via 博客园 - ant-boss

Posted on 2007-10-08 13:57  ant-boss  阅读(600)  评论()    收藏  举报

 

总述
在数据分析和生成报表方面,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)[此文中源码]

Fig. 1
安全
本文和例子是基于服务端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报表演示 - 显示报表请示页面
Fig. 2
测试例子: (例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