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
J
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・
版权声明:本文标题:用OWC控件实现基于模板的Web应用程序 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713373989a631445.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论