admin 管理员组

文章数量: 1184232


2024年4月18日发(作者:kafka和rocketmq的区别)

维普资讯

本栏目赍任编辑:谢媛媛 ......开发研究与设计技术・ 

基于OWC组件生成下载Excel报表的实例分析 

李慧文。管建和 

(中国地质大学(北京)信息工程学院,北京100083) 

摘要:介绍了一种基于Ofl ̄ce web Components 11.0(OWCl1)COM组件在Asp.net开发中创建生成Excel报表且支持下载保存到 

客户端的方法,给出实例并分析了关键代码。 

关键词:ASP.NET:OWC11;Excel;报表下载 

中图分类号:TP311 文献标识码:A 文章编号:1009—3044(2007)05—11343—02 

LI Hui—wen,GUAN Jian—he 

Implementation of Excel ExpoSing and Downloading Based on OWC 

(China univ.of Geosciences.Beijing 100083,China) 

Abstract:The method of exporting excel report based on O伍ca Web Components 1 1.0 is introduced in this article,Which can be down- 

loaded tO the c ̄ent in the environment of asp.net.Example of key code is analyzed in tish article. 

Key wordS:ASP.NET;OWC1 l;Excel;Report downloading 

1引言 

在开发web应用程序时。经常会遇到需要提供Excel报表给 

程序与版本控制的困难。 

用户界面层:用户界面采用的是ASP.NET技术。ASP.NET技 

术的应用增强了系统的通用性,客户端只需安装IE或Netscape 

等任一款浏览器。无需加载任何组件。 

客户端下载的情况。数据保存在SQL Server数据库上,应用程序 

允许用户添加数据、更新现有数据,但除了这些功能之外。用户还 

要求应用程序能够用报表的形式直观地显示数据,并能提供给客 

户端本地下载。 

业务逻辑层:采用了.NET Framework调用OWC的技术,能 

够根据用户的要求快速取得数据库中的数据动态生成图表。系统 

能够支持复杂的检索条件,检索速度快。响应时间短。 

数据库服务层:数据库服务层可采用任何一款关系型数据 

库。本实例应用的是SQL Server,它能与.NET Framework无缝集 

成。数据库存取技术则采用了ADO.NET。 

下文将着重介绍业务逻辑层的实现方法。 

使用OWC组件的步 ̄uT[31: 

f11在当前目录中新建一个存放报表文件的子目录chart,同时 

把对该目录的“修改”权限赋予ASP.NET账户。具体步骤如下:用 

鼠标右键单击chart目录名,选择“属性”菜单项,在弹出的“Chart” 

VS.NET平台上集成了实时数据库图表制作组件——0WC 

(orece Web Components)。通过在ASP.NET页面中调用0WC,我 

们可以轻松地绘制出各种类型的实时报表。 

本文主要讨论如何利用OWCl1组件绘制技术在ASP.NET 

Web页面中提供创建Excel报表的功能,具体地说,本文分析了如 

何利用MS SQL数据库中保存的数据生成Excel表格并支持下载 

到客户端的方法。 

2实现技术 

如果要在ASP.NET应用程序中绘制Excel报表,必须要有一 

个合适的图表引擎。0WC是一组COM(AetiveX)控件的集合,涵 

盖电子表格、图表、数据透视表等功能。它经常被当作客户端技术 

使用。这时COM控件就安装在客户端PC上。如果在服务器端使 

用.人们主要感兴趣的是它的图表绘制功能。按照微软的定义, 

OWC是一种“将类似Office的功能扩展到Web的微软技术”f1]。 

属性对话框中单击“安全”选项卡,再单击“添加”按钮,找到ASP. 

NET账户,赋予“修改”权限,单击“确定”按钮结束。这样,ASP.NET 

就可以在chart目录中写人报表文件了。 

f21添加0WC引用。在使用OWC之前,首先必须将OWC的 

引用加入到“解决方案资源管理器”中。具体步骤如下:打开“解决 

关于OWC的编程实例很少。微软知识库有几个客户端的例 

子和“传统”ASP的服务器端例子.但找不到在ASP.NET环境中使 

用0WC l1的例子。如果要在ASP.NET环境中使用0WC l1,主 

要还是靠自己摸索。 

要想在ASP.NET Web服务器上用0WCl1绘制图表.首先应 

当安装必要的软件和修改一些配置。Web服务器上当然应该有 

ASP.NET运行环境,还要安装.NET Framework SDK工具。接下来 

再在Web服务器上安装OWC l1。OWC可以从微软免费下载,安 

装时只要采用所有默认选项即可 

方案资源管理器”面板,鼠标右键单击“引用”,选择“添加引用”菜 

单,在弹出的“添加引用”对话框中单击“COM”卡片,找到“Mi 

crosoft Office Web Components l1.0”。单击“选择”和“确定”按钮, 

0WC就被添加到了引用中。 

这里首先建立一个页面WebForm1.aspx,这个页面可以只包 

含一个button控件,也可以添加一个Datagrid控件,绑定数据库 

表,将数据展示给用户。 

f31定义OWC空间,并在该空间中加人一个OWC图表x1. 

sheet。 

3应用实例及分析 

应用实例的整体架构采用了B,S三层结构模式,将系统分为 

用户界面层(也称为表现层)、业务逻辑层(也称为功能层)和数据 

OWC 1 1.SpreadsheetClass xlsheet=new OWC 1 1.Spreadsheet— 

Class0; 

f41导出本地临时Excel报表。用SQL检索条件进行数据库检 

索,并将检索结果以数据集的方式赋给xlsheet。为了方便.我们把导 

库服务层(也称为数据层)【21,开发平台则采用了.NET Framework, 

有效地降低了系统对客户机的要求,避免了在客户机上分发应用 

收稿日期:2007-02—22 

出的Excel文件暂定保存在D:\chatr\的目录下,下面是关键代码: 

作者简介:李慧文(1983-),女,河北邯郸人,硕士研究生,研究方向:计算机网络应用;管建和(1962一),男,中国地质大学(北京)教授。 

1343 

维普资讯

开发研究与设计技术・・・・・・ 

response.ClearHeaders0; 

response.Buffer=TRUE; 

本栏目责任编辑:谢媛媛 

private void ExportExcel0 

{OWC 1 1.SpreadsheetClass xlshoet=n6w OWC 1 1.Spreadsheet— 

Class0; 

f0r(i_O-i<numbercols-i++)//输出标题 

response.ContentType=“application/octet.stream”: 

response.AppendHeader f.IContent-Disposition”,”attachment; 

{xlsheet.ActiveSheet.Cells【1,i+1】=reader.GetName(i). 

ToString0;) 

while(reader.Read0) //输出字段内容 

{ for(i=0;i<numbercols;i++) 

{xlsheet.ActiveSheet.Cells【row,i+1】=reader.GetValue(i). 

ToString0; 

xlsheet.get

Range(xlsheet.Cells row,1】,xlsheet.Cells[row,number— 

eols]).set—HorizontalAlignment(OWC1 1.XlHAlign.xlHAlignCenter); 

)row++;} 

reader.Close0; 

conn.Close0; 

xlsheet.Export(“D:\\chart\\“+System.DateTime.Now.ToStirng(” 

yyyyMMddhhmmss”)+”.xls“,0WC1 1.SheetExportActionEnum.ssEx— 

portActionNone,OWC1 1:SheetExportFormat.ssExportXMLSpread— 

filename=“+HttpUtility.UrlEncode(fi.FullName.System.Text.Encoding. 

UTF8)); 

response.AppendHeader(“Content-Length“.fi.engtLh.ToString0); 

response.W 【enle(if.FullName);//下载保存文件 

response.Flush0; 

System.IO.File.Delete(“D:\\chart\\“+fileName);//删除临时文件 

response.End0;) 

在上面的代码中,首先定义了一些关于Excel的对象。如 

SpreadsheetClass,ActiveSheet,application等,这些都是在使用Ex 

eel的COM对象时,必不可少的。 

4小结 

OWC为开发人员在Web应用中绘制图表提供了方便 同时 

也是图标引擎最基本的机制。应用数据库与OWC中的Spread— 

sheetClass对象结合,提供了跟Excel的接口,能够方便的进行数据 

分析,并且能导出Excel下载到客户端。相信清晰实用的报表一定 

会为成为Web程序的亮点。 

sheet);//取当前系统服务器时间为文件名,生成临时Excel文件保 

存至D:\chart\l l 

(5)下载Excel文件保存在客户端,并将上一步生成的临时文 

件删除。 

private void ExportExcel

Click(object sender,System.EventArgs 

参考文献: 

【1】(美)Davestearns著,李志,译.Microsoft Ofifce 2000 Web 

Components编程技术内幕【M】.北京:北京希望电子出版社,2000. 

e1 

{this.ExportExcel0; 

stirng fileName:System.DateTime.Now.ToString(”yyyyMMd— 

dhhmmss“1+”.xls“; 

HttpResponse response=HttpContext.Current.Response; 

『2]R ̄N萍,肖世德.新一代Web开发技术ASP.NET的发展与 

探析【J】.微计算机信息,2005,1:190—192 

一 一一 

System.IO.Filelnfo if=new System.IO.Filelnfo(fileName); 

response.Clear0; 

(-Y-4 ̄g 1306页) 

位。单片机发出的控制信号完成电动机的正向和反向控制。图4 

是双向可控硅实现的云台控制单路电路图(共有上下左右四路) 

【3】维基百科.OWC技术汇总.http://www.csdn.net/subject/owe/, 

2005-1 1-23. 

然保护区,矿山等特殊环境进行实时监控。有很好的应用前景。 

【3】。 

RS 85* 4 \/ 

VCd V0c2 Vc。 

图3采用MAX485构成的ILS一485半双工点对点通信电路 

图4云台控制电路 

3.1.5镜头控制电路设计 

对镜头的控制包括光圈大小、焦距远近和变焦大小控制。变 

图5镜头控制电路 图6云台镜头控制程 

焦镜头有光圈、聚焦、变倍三个直流电机,三个电机有一个公共接 

地端,在非公共端加正、负电压时电机正反旋转。单片机发出的镜 

头控制信号对镜头直流电机的正、反向电压进行控制,镜头控制 

电路如图5所示。 

序简要流程图 

参考文献: 

【1】丰洪才,邓华来,刘年波.用ActiveX控件实现对云台和镜 

3.2终端解码器软件设计『51 

系统的软件设计主要包括通信中断服务程序、云台电机控制 

子程序、镜头电机控制子程序等。软件设计采用模块化程序设计 

结构。图6是系统程序设计简要流程图。 

4结束语 

本文介绍了基于一种SPCE061A单片机的新型智能远程云 

台控制系统,能够实现自动跟踪,自动聚焦,自动光圈调整等功 

能。在此基础上,进行改进,加上适当的保护措施,可以应用于自 

头的远程控制『J].计算机应用研究,2O04:234—235 

【2】谭克俊,孟宪尧,房丽萍.基于89C51单片机的云台镜头解 

码器设计『J1.大连海事大学学报,2001,(27,3). 

【3】董蕴化,魏辉.云台镜头控制系统终端解码器的设计与实 

现.河南机电高等专科学校学报『J1,2005,(13,2). 

『41吴益飞,李胜,蔡骅.基于MSP430单片机的云台控制系统 

设计与实现.微计算机与信息嵌入式与SOC[J】,2006,(22,72). 

【5][ ̄]Mark Nelson,著.串行通信开发指南【M】.中国水利水电出 

版社。2000. 

电脑知识与技术 


本文标签: 数据 控制 应用 数据库