admin 管理员组

文章数量: 1184232


2024年4月18日发(作者:aspirek4000加内存条)

MicrocomputerApplicationsVo1.26,No.7,2010 丌发 微型电脑应用 2010年第26卷第7期 

文章编号:1 007・757X(20 1 0)7-004 1-03 

用OWC控件实现基于模板的Web应用程序 

崔学荣,张浩 

摘要:为了满足用户对灵活多变的Web应用程序的需求,避免重新开发设计程序,提出了一种用OWC(Ofifce Web 

Component)控件实现的基于模板的Web应用程序。同时设计了一套完整的模板制作、编辑数据、查看数据的流程,并介绍 

了其中的关键技术和实现方法。这样,可以大大地减轻软件开发人员的工作量,增强系统的灵活性,满足用户随时变化的显 

示、录入方式,提高人机界面的友好性。 

关键词:0fifce activeX控件;OWC;模板;Web应用程序 

中图分类号:TP311.52 文献标志码:A 

0引言 

对数据源的数据进行检索等,该控件在运行时,不可见,经 

常与上述3个子控件联合使用。常用的OWC控件的版本为 

随着计算机网络的发展,基于Web的B/s Ofifce2003中的owc1 l,其ClassID为‘'CLSID:0002E55D 

(Browser/Server)结构的应用程序越来越受到人们的喜爱 

例如:<object id=”OWC” 

和推广。因为B/S结构属于度客户端应用程序,只需要在服 

width=”100%”classid=”clsid:0002E551-0000—0000一C000—000 

务器上部署系统,即可实现所有联网计算机的互操作。然而 

000000046”viewastext style=”height:400px;”>,用户需要根 

对程序开发人员和最终用户而言,传统Web应用程序最大 

据不同的ofifce版本,使用不同的OWC版本,更换上方的 

的缺点就是灵活性差【1l。一旦用户提出一种新的数据录入 

classid[4】。 

或显示模式,一般都要由专业程序员重新开发或者布局Web 本文设计的基于OWC模板的Web应用程序,主要分 

应用程序。为了满足用户对灵活多变的Web应用程序的需 

为3个模块,如图1所示。“模板制作”模块主要是由程序 

求,最可取的方案就是实现基于模板的Web应用程序,由 

员将模板固化在程序中或者系统管理员通过在线的方式编 

系统管理员自己定义各类应用的模板,由一般用户直接使用 辑完成;“编辑数据”模块主要是由终端用户打开模板,录 

这些模板来录入数据或显示打印数据『2】。基于模板的应用 入数据,保存数据;“查看数据”模块是以图表的方式打开 

程序在~般的桌面应用程序中比较容易实现,但是却一直是 

显示已经保存的数据。 

Web应用程序的一大难题,本文采用OWC控件,设计了一 

套完整的模板制作、编辑数据、查看数据的流程,可以大大 

减轻软件开发人员的工作量、增强系统的灵活性、满足用户 

随时变化的显示、录入方式、提高人机界面的友好性。 

1 OWC控件的简介 

OWC控件属于Ofifce ActiveX控件中的一个,在安装 

Microsoft Ofifce时即可免费安装。虽然该控件命名为‘'Web 

Component'’,但是它不仅可以应用在wleb应用程序中,而 

且也可以应用在桌面应用程序中,用于向程序中添加电子表 

格、图表等【3】。OWC控件主要包含Spreadsheet、Chart、 

PivotTable和Data Source等4个子控件。其中Spreadsheet 

控件,能够在程序中嵌入一个类似于Excel表单的控件,可 

以实现排序、筛选、公式计算、格式设置、复制粘贴、导出 

Excel等操作:Chart控件:能够在程序中嵌入一个类似于 

图1用owc创建基于模板的Web应用程序的流程图 

Excel图表的控件,并可以将生成的各类统计图导出成图片 

格式;PivotTable组件:向系统中增加类似于Excel数据透 

2模版的制作 

视表的控件,实现分类统计汇总;Data Source控件:向系 

模板制作是在编程时或者管理员在后台系统维护中在 

统中增加类似于Excel外部数据的控件,用来绑定数据源、 

线完成的,根据流程可以分为“制作模板”、“提取HTML 

基金项目:国家863项目(2007AA01Z317);国家自然科学基金项目(60902005) 

作者简介:崔学荣(1979-),山东省莱阳市人,中国石油大学(华东)计算机与通信工程学院,讲师,博士研究生,主要研究方向:无线通信、 

计算机网络,山东青岛257061;张浩(1975-),江苏,中国海洋大学信息科学与工程学院,教授,博士生导师,博士,主要研究 

方向:超宽带无线通信系统、卫星导航系统、认知无线电,山东青岛266100 

・41・ 

MicrocomputerApplications Vol。26,No.7.2010 开发应用 微型电脑应用 2010年第26卷第7期 

或XML字符流”和“保存模板”3部分。 

框中即可。 

2 l制作模板 

2)通过OWC控件制作模板:可以通过 

可以通过两种方法制作模板: 

OWC.HTMLDATA(如果是XML字符流则应该是 

1)在Ofifce的Excel中直接制作。这种方法制作简单、 

OWC.XMLDATA,如果是CSV字符流则应该是 

可以利用的功能菜单多,操作简单、灵活。但是需要手工将 

OWC.CSVDATA)获得模板的字符流。可以通过客户端脚 

Excel另存为HTML或XML格式文件。 

本语言将模板的字符流转存到隐藏型的文本框中(假定文本 

21通过OWC控件。利用OWC控件以及程序员提供的 

框的ID为OWClnput)。例如:OWCInput.value=OWC1. 

功能在线制作模板。OWC控件已经提供了一些在线编辑的 

HTMLDATA。最后再将文本框中的数据提交到服务器。 

功能按钮和右键快捷菜单(主要在快捷菜单的“命令和选项” 2.3保存模板 

中),例如:文本、字体、数字格式、边框的格式,合并单 将文本框中的"OWC字符流提交到服务器中的文件中、 

元格,公式编辑等。 服务器的数据库中或者直接嵌入到程序文件中。 

但是,OWC控件本身提供的功能非常有限,程序员还 1)保存到数据库中 

需要通过VBScript或JavaScnpt客户端脚本语言扩充其他常 

可以将创建的模板保存到数据库的备注型字段中,保存 

用的功能,例如:冻结窗格、插入超链接、插入文件、锁定 

到数据库中时要注意,因为OWC的字符流中包含单引号或 

单元格等。实现方法如下(假设当前的OWC控件的ID为 双弓l号等,所以最好是采用传递参数的形式来执行SQL语 

“OWC”,客户端脚本语言为VBScript). 

句而不要直接通过连接字符串生成SQL语句。例如在 

1)冻结窗格:将对应的行(当前单元格的上一行)或 

VB.net中将模板保存到SQL Server数据库中可以执行如下 

列(当前单元格的左列)冻结,当上下或左右拖动滚动条时, 

语句: 

被冻结的区域将一直显示。 

Dim colnnl As New System.Data.SqlClient SqlCommand 

Sub setFreeze fStatus)’Status为逻辑型,取值为true 

(”INSERT INTO template(owc,title)VALUES(@owc,”’& 

(冻结)或者false(不冻结)。 

TrilfeValue&”’)”,conn) 

0WC ActiveWindow.FreezeParies=Status 

Dim POWC As New System.Data SqlClient. 

End Sub 

SqlParameter(”@owc“,System.Data.SqlDbType NText) 

2)插入超链接 

POWC Value=Request.Form(”OWCInput”1 

Sub addHyperlink(x,Y,title,ur1) 

conlnl Parameters Add(POWC) 

OWC Cells(x,v).value=title’X,Y为整型表示单元格位 

comm ExecuteNonQuery() 

置;title为字符型,表示超链接显示的内容。 2)保存到文件中 

OWC Cells(x,v)Hyp ̄ink Address=url’url为字符型, 

可以将创建的模 保存到服务器的文件中,在ASEnet 

表示超链接的地址。 

中需要使用SystemIOFile命名空间,在ASP中需要使用 

End S bu 

Scirpting FileSystemObject组件读写文本文件。 

3)插入文件 

3)嵌入到 序文件中 

插入文件实现的思路:首先将文件通过上传组件上传到 

对于永久 变的页面,程序员也可以将OWC字符流直 

服务器,然后再在Excel中相应的单元格中对该文件做超级 接写在程序由,此时需要将HqqVlL字符流赋值给OWC的 

连接。 

参数trrMLDATA(对于XML字符流参数名为XMLDATA, 

4)锁定单元格:将选定的单元格锁定,通过锁定单元 

对以Cs^,字符流参数名为CSVDATA)。例如:<param 

格可以实现固定模板的格式,使得用户只能在特定的单元格 

name-”HTMI D L1lA” 

输入数据。 

value”<tabl 

Sub LockCelts(Stauts) 

atble>”>。同时可以将对模板操作的脚本命令写着程序中。 

‘Status为逻辑型,取值为true(锁定,该区域的单元 例如以下的VBScript脚本命令: 

格不能编辑)或者false(不锁定,该区域的单元格可以编 

OWC.DisplayWorkbookTabs=false’设定不显示左下方 

辑)。 的sheet选择框 

OWC.Selection.1ocked=Status 

OWC.TitleBar.Caption=”TOA定位方法误差统计” 设 

0WC.ActiveSheet Protection Enabled= ̄ue 

定OWC控件左上方显示的标题 

End Sub 

OWC TitleBar.Visible=true’设定显示工具条 

2l2提取HTML或XML字符流 

OWC.Range(”A1:J2”1.Font.Bold--true 设定 

制作的模板最终要以OWC(HTML或XML)字符流 该区域内所有单元格的字体为粗体 

(如果不保存格式也可以使用CSV字符流)的形式存放在 

OWC Range(”A1:J2”1 Interior.Color=”Yellow” ’设定 

文本框中。 该区域内所有单元格的背景颜色为黄色 

1)在Ofifce的Excel中制作的模板:要首先将其另存 

OWC Range(”A1:J2”1.HorizontalAlignment=-4108’该区 

为HTML或X/vIL格式文件,然后用记事本打开保存的文件 

域内所有单元格均水平方向居中显示 

从而得到字符流。最后将该字符流复制、粘贴到网页的文本 

OWC.Range(”A1:J2”1 VerticalAlignment=-4108’该区域 

・42・ 

MicrocomputerApplicationsVo1.26,No.7,2010 开发应用 微型电脑应用 2010年第26卷第7期 

内所有单元格均垂商方向居中显示 

呻定藏系麓芋均意俄鼍差‘童挺t ̄llalt:I聃『】 

OWC Range(OWC Cells(1,1),OWC.Cells(9,9))Borders 

LineStyle=l’该区域内所有单元格均显示边框 

.. 

OWC range(”E1”)formula=”=round(D1/365,1)” ’设定 

 -

i 

12 

单元格的公式 

Io 

OWC Columns.AutoFit()’设定列宽自动调整为最适合 

董。 r l 

的列宽 

I e l 

4 

- l

l:

 

 

3编辑数据 

- -2 : ≮¨¨ l I= 

:. 矗 :。 。 I 。 曲舢 

编辑数据模块一般是给终端用户使用的,用OWC的 

; ; ‘2 

Spreadsheet将模板显示出来,用户录入数据或者直接拷贝数 

正方 定盅逸j毫边长【●靠:米】 

据到表格中均可,编辑数据模块还要注意以下两个问题: 

l+艇 +朝 l 

3 1模板的显示 

图2 ChartSpace控件显示实例 

有以下两种显示模板的方法: 

1)模板如果是以文件的形式保存到服务器上,则应该 

5结语 

设定OWC控件的htmlURL(如果是XML文件则应该是 

xmlURL,如果是CSV文件,则应该是csvURL)属性,指 

本文提出了一种使用MicrosoftOfifce提供的OWC(电 

向服务器的文件,例如:<param nanle=”htmlURL”value=” 

子表格、图表、交叉图、数据源)控件,实现了基于模板的 

http://127.0 0 1/template/1.hlm”>。 

Web应用程序的方法,并用该方法实现了“超宽频带无线精 

2)模板如果是以字符的形式保存到数据库中,则应该 

确定位系统”。实践证明,采用基于OWC控件模板的数据 

查询数据库,将字符流赋值给OWC控件的HTMLDATA(如 

编辑系统,可以大大地增加Web应用程序的灵活性、界面 

果是XML文件则应该是xmlDATA,如果是CSV文件,则 

友好性和系统稳定性。 

应该是csvDATA)属性。例如:<param name=”HTMLDATA” 

value=”<%=datereader OWC”).toStrmg0%>”>。 

参考文献 

3.2提取单元格数据 

可以将整个OWC控件的数据保存到服务器上,参照 

【1】唐贤伦,张学旺.OWC组件在、veb图表统计中的应用【J]. 

‘ 3保存模板”,也可以用客户端脚本语言只提取关心的单 

计算机应用,2003,23(S2):437-438. 

元格的数据。方法是: 

【2】 关锋.基于OWC的报表软件的设计与实现【D】.北京:北 

1)在客户端将单元格的数据保存到一个隐藏型的输入 

京大学软件工程系'2006. 

框中。例如,以下JavaScript代码是将OWC中第1列的所 

『31 Jnu Fujima,Shohei Yoshihara,Yuzuru Tanaka.Wleb 

有数据放在了inputValue这个输入框中。 Application on;heshation Using Excel[C].Proceedings of 

function getcells() 

the IEEE^vIC/ACM International Conference on Web 

{insert-=”” 

Intelligence.Washington DC:IEEE Computer Society, 

var Sheet-=document.all OWC 

2007:743—749. 

for(i:2;i<=OWC.ActiveSheet.UsedRange Rows.count i++ 

『41 Jacek Slomczewski,Wojciech Zabierowski,Andrzei 

) 

Napieralski.Update and Modiifcation Application for 

{if(Sheet Cells(i,1).Value==nul1) 

、^n^nV TemplatesIC] Modem Problellis of Radio 

break; 

Engineering,Telecommunications,and Computer Science 

else 

Washington DC:ⅢEE Computer Society2006:406—409. 

nisert=insert+Sheet.CeH ̄i,1).Value+” } 

[55] Sam Chung,Yun-Sik Lee,Modeling Web applications 

document.all inputValue value=(nisert) } 

using Java and XⅣ匝 relmed technologiesICl// 

2)在服务器端提取该输入框中的值,用split方法将其 

rPoceedings of the 36th Annual Hawaii Intemational 

分离。例如:string[]niput=inputValue.Value.Split(’lI1'这样 

Conference on System Sciences一2003.Washington DC: 

就将输入的值分离到了数组input中。 

IEEE ComputerSociety,2003:1.10. 

f61 Chanwit Kaewkasi,Wanchai Rivepiboon.WⅥ :a practical 

4查看数据 

methodology for Web application modelnig[C] 

Proceedings of the 26th International Computer Software 

可以在OWC的Spreadsheet、Chart、PivotTable等控 

nad Applications Conference on rPolonging Software Lire: 

件中以图、表的形式查看数据。例如,图2是利用ChartSpace 

Development nad Redevelopment.Washington DC:IEEE 

控件显示的国家863项目“超宽频带无线精确定位系统的开 

Computer Society,2002:603—608. 

发与设计”中通过Web浏览器实时看到UWB定位模块运 [7]Microsoft Corporation脚本主题【EB/OL] 

行的结果。这些图表在Web浏览器中是可以拖动改变大小 

http://www.microsoft com/china/technet/community/script 

而显示质量并不改变的矢量图形。 

center/topics/default mspx-20l0. 

f收稿日期:2010-03.24) 

・43・ 


本文标签: 模板 数据 控件 显示 字符