免费获取
|
论文天下网
|
原创毕业论文
|
论文范文
|
论文下载
|
计算机论文
|
论文降重
|
毕业论文
|
外文翻译
|
免费论文
|
开题报告
|
心得体会
|
全站搜索
当前位置:
论文天下网
->
免费论文
->
计算机论文
Excel Web组件的应用(三)
.Cells(ct,ColumnNum).Text)
Next
‘ 最后引用自动过滤
af.Apply
‘ 打开ScreenUpdating属性开关,使电子表格重画
Spreadsheet.ScreenUpdating = True
‘ 结束撤消单元
Spreadsheet.EndUndo()
End Sub 'TopNFilter()
“前N位”过滤功能似乎很简单,只要先排序,然后查看最开始的N行即可。但是真正的”前N位”过滤功能可能会返回超过N行的结果,因为它实际上的意思是”包括前N位的值的那些行”。如果在排序后,第10,11位的值相同,那么”前10位”过滤会将这些产品一起返回,因为它们都在前10位的值当中。还有,上述代码通过简单的改变排序方向(升序和降序)实现了过滤出前N位和后N位的功能。
装 载 数 据
Spreadsheet组件可以通过多种方式加载和保存数据,可以按实际情况灵活的运用这些方式。
可以通过4种方式将数据装载到电子表格组件中:
1 通过交互从Excel2000中发布一个电子表格或区域。
2 从Excel2000向电子表格组件中拷贝一个区域。
3 当电子表格组件位于设计器中时,可以直接在组件中输入数据或一组新的公式。
4指定一个URL来装载数据,这个URL会返回一个HTML文档,其中至少包含一个HTML表格。此外,也可以从一个URL处装载以逗号分隔的文本数据(CSV)。
前三种我们在以前章节已经有所交待,在此我们只正研究第4种从URL处装载。
在属性工具箱中,可以让电子表格组件打开一个特定的URL,并将该URL处查找到的第一个HTML表格进行加载(注意:电子表格组件不能直接从一个二进制XLS文件中装载数据)。CSV(以逗号间隔的文本)缺乏格式化或公式的信息,因此,只能从CSV流中加载原始数据。数据是保留在URL所指的文件中的,电子表格组件会在每次初始化时加载这些数据。当然,这个URL可以方便地指向一个Microsoft的动态服务器页面(ASP)或者是一个CGI程序,这个页面或程序从企业数据库或其它的存储系统中动态的生成HTML表格,这样就使得能够将动态,最新的数据加载到电子表格组件中。
4.2 编程模型要点
以下讲述的是spreadsheet组件编程模型的要点,让我们明白该组件应该如何应用。在这里会介绍几种常用的属性和方法。
在脚本中使用枚举
COM和OLE自动化允许组件定义枚举,每个枚举都是指定的一组常量,作用类似编程语言中的类型声明。可以将一个枚举用作属性或方法的参数,这使得如VB和VC这样的环境能够显示包含一个枚举中有效常量的语句完成下拉列表。OWC和其它许多ActiveX组件一样,包含了一系列预定义的枚举。
不过,在例如Web页面或asp页面这样的脚本环境中,不存在类型的概念。因此,在现有的这些脚本语言中不能使用枚举成员名称,因为这些语言无法知道一个特定的常量(例如ssHAlignLeft)对应的是什么。这意味着的VBScript脚本代码会因为不能自描述的神秘数字而混乱不堪。
为了尽量解决这个问题,所有的OWC组件都有一个名为Constants的顶级属性,在脚本语言中可以使用这个属性访问组件的各种枚举成员。例如,如果需要在VBScript代码中使用ssHAlignLeft常量使一个单元的内容居左显示,您可以这样书写代码:
MyRange.HAlignment = Spreadsheet1.Constants.ssHAlignLeft
为了使用一个枚举常量,您可以把它当作Constants对象的一个属性来引用它,而对象将返回枚举成员的正确的值。
constants属性返回一个对象,它允许 VBScript 程序员使用已命名的常量。本属性可应用于每个顶层容器对象(ChartSpace、DataSourceControl、PivotTable 和 Spreadsheet)。它返回一个含有所有已命名常量的对象,这些常量都可用于“Microsoft Office Web 组件”的类型库中(不论 Constants 属性应用于何种对象,它总返回已命名常量的完整集合)。
要在 VBScript 中使用已命名的常量,则可将某对象变量设置为由 Constants 属性所返回的对象,然后在代码中使用此对象来限定已命名的常量,如下例所示。
Set c = ChartSpace1.Constants
Set valueAxis = ChartSpace1.Charts(0).Axes(c.chAxisPositionLeft)
如果只使用一个常量,则可以直接在表达式中使用 Constants 属性。如下例所示。
Spreadsheet1.ActiveSheet.Export"sstest.xls", Spreadsheet1.Constants.ssExportActionNone
请注意,如果您计划在您的函数的多处使用常量对象,那么设置一个等于Constants对象的变量是很有用的,这样做既避免了不必要的打字,也能够提高性能。例如,您可以这样书写代码:
Set c = Spreadsheet1.Constants
MyRange.HAlignment = c.ssHAlignRight
MyRange.VAlignment = c.ssVAlignBottom
Constants对象只在没有枚举概念的脚本语言中有意义。如果您是在VB,VBA或C++中编写代码,请象平常那样直接使用枚举,不用理会Constants对象。
将数据输入组件
之前我已经讲述了多个将数据输入组件的技巧。我现在将更详细的描述编程模型中的这些技巧。表4列出了与装载数据相关的属性和方法,所有这些属性和方法都通过电子表格对象的接口公布。
表 4 装载数据相关的属性和方法
属性或方法 描述
Spreadsheet.DataType 字符串类型的属性,告诉电子表格组件在多个用于装载数据的属性被设置时,应该使用哪个属性来装载数据,赋给这个属性的值就是应该用来装载数据的那个属性的名称――例如,将这个属性设置为HTMLURL,会使组件装载从属性HTMLURL中的URL处 获得的数据。
Spreadsheet.HTMLURL 字符串类型的属性,包含了一个URL,可以从这个URL处装载电子表格的数据。这个URL必须返回一个包含了表格的HTML文档。使用Excel 2000中来保存为HTML格式的电子表格可以使用这个属性来装载,这个属性也可以是一个从数据库中实时生成表格的ASP页面或CGI程序。
Spreadsheet.CSVURL 字符串类型的属性,和属性HTMLURL类似,不过它希望从URL处获得的数据格式是CSV格式的。就象HTMLURL属性一样,这个URL可以是一个从数据库中实时生成表格的ASP页面或CGI程序。
Spreadsheet.LoadText 可以将一个被分隔的文本文件载入电子表格的方法。与CSV格式不同的是,这个文本文件可以使用任何字段分隔符。
使用区域
电子表格组件中最常使用的编程接口是Range对象。很多方法都返回Range对象,当需要对一个区域的各单元进行修改,格式化,排序和设置自动筛选时,都会用到Range对象。表5显示了在建立电子表格组件的解决方案时应该了解的Range对象的属性和方法。
表 5 Range对象主要的属性和方法
属性或方法 介绍
Spreadsheet.Range 该方法接受一个区域引用(例如A1:B2或A:B),返回一个Range对象。因为一个区域可以只有一个单元,因此您也可以传入单个单元的引用(例如A1)。该方法也可以接受两个不同的单元引用,而返回一个含盖这两个单元的区域。
Range.Address 该属性返回一个区域的地址(例如,A1:B2)。
Range.Cells 将该属性当作多个单元的一个集合,也就是说可以使用For Each循环访问其中的每一个单元。该属性也可以以二维数组的形式来访问。例如,MyRange.Cells(1,3).Value会返回区域中行1,列3的值。
Range.Column, Range.Row 这些属性指出区域中首行和首列的编号。当您在一个区域的行和列中进行迭代时,如果需要知道当前位于哪行哪列,这个属性非常有用。
Range.Columns, Range.Rows 虽然在名称上和前两个属性非常相似,但是这对属性返回的是Range对象包含的行或者列的集合。Range.Columns.Count和Range.Rows.Count可以告诉你当前区域中行和列的数目。
Range.Value 该属性获得或设置区域的值。虽然帮助文件说在区域由多个单元构成时Range.Value会返回一个二维变量数组,但实际上当前版本中这是没有实现的。不过,Range.Value可以接受一个二维数组的变量,来将数据输入区域中,当你需要使用文字值设置一个或多个单元值,或者是需要获得一个单元的无格式(即没有格式化的值)的值时,可以使用这个属性。
Range.Text Range.Text属性返回Range.Value属性的格式化版本。当您需要在消息框或另一个用户界面元素中显示格式化的值时这个属性很有用,该属性值就是您在添加AutoFilter对象的过滤条件时传入的值。
格式化
在将数据载入电子表格后,您可能需要通过编程来控制格式化。每个单元都有自己的字体,对齐方式,边框,颜色和数字格式属性,所有这些特征都可以使用表6中的属性来设置。
表 6 用于格式化的属性
属性 描述
Range.NumberFormat 字符串类型的属性,控制单元中数字的格式。可以引用现有的格式名称来使用众多的内置格式(例如Currency)。也可以创建自定义格式(例如,#,###,使1000显示为1,000)。
Range.Font 返回一个许多组件都能使用的常用的Font对象。Range.Font允许设置Font对象的的多个属性,例如Name,Size,Bold,Italic,Color和Underline。请注意,如果需要,可以在Font.Color属性中使用IE的颜色名。
Range.Halignment, Range.Valignment 这两个属性控制区域的各单元水平和垂直方向上的文本对齐方式。每个属性中定义了各自可以使用的对齐方式的枚举值。
Range.Borders 该属性返回一个Borders对象,可以通过它来设置每个单元边框的各个特性,如边框线的线粗,样式及颜色。
组件级的外观和行为
许多属性和方法会影响整个电子表格组件。表7列出了定制的解决方案中最有趣的属性和方法。
表7影响整个电子表格的主要属性
Property Description
Spreadsheet.DisplayColHeaders, Spreadsheet.DisplayRowHeaders 控制是否显示行头和列头。这两个属性的缺省值是True。通常,您可以在需要使用您自己的代码来对电子表格界面进行完全控制时将这两个属性设置为False。
Spreadsheet.DisplayGridlines 控制是否显示网格线。缺省是要显示的,如果在定制解决方案中,要在需要单元分隔线的地方使用边框,则常关闭这个属性。
Spreadsheet.DisplayPropertyToolbox 控制是否显示属性工具箱。将属性置为true则显示,置为false就会隐藏。
Spreadsheet.DisplayTitleBar 控制是否显示标题栏。缺省是显示标题栏的。可以使用下面介绍的TitleBar属性来修改标题栏上的内容和格式。
Spreadsheet.DisplayToolbar 控制是否显示工具条。缺省是显示。
Spreadsheet.EnableAutoCalculate 控制电子表格模型如何重算。如果这个属性被置为false,电子表格模型不会自动重算;必须调用工作表对象的Calculate方法,才能看到改变输入后的新结果。在计划修改一系列的输入,并且希望只有在完成所有的修改后,才重算模型时,这个属性非常有用。这个属性缺省为True――模型会在电子表格被修改时自动进行重算。
Spreadsheet.ScreenUpdating 缺省情况下,电子表格在屏幕上的显示总是反映最新的数据,不过如果计划执行大量的操作,而不希望电子表格在每一个操作之后都会因为更新而闪烁。可以将这个属性置为Fasle。将这个属性重新设回True会触发一个彻底的重绘动作。
Spreadsheet.Selection 返回当前选择的对象。可以使用VBA或VBScript中的TypeName函数来判断这个对象的类型。
Spreadsheet.TitleBar 使您可以访问电子表格的标题栏,可以改变标题栏的文本和格式。
排序和过滤
表8 列出了在电子表格组件中排序和过滤数据时可以使用的属性和方法。
表8 具有排序和过滤功能的属性和方法
属性或方法 介绍
Range.Sort 根据给定的列和排序方法对区域进行排序。
Worksheet.AutoFilter 该属性返回一个AutoFilter对象,该对象可用来设置当前过滤器的细节。
AutoFilter.Filters 该属性返回当前自动过滤区域的过滤器集合。一个过滤器对象应用于自动过滤区域中的一列,过滤器对象的下标和对应区域中列的下标相对应。
AutoFilter.Apply 该方法应用一个新的自动过滤。在设置完过滤条件后,必须调用这个方法来实应用过滤器。
Criteria.FilterFunction 该属性控制符合过滤条件的项是包括在过滤器中,还是被排除在过滤器之外。如果是包含,则过滤器仅包含符合过滤条件集合的项,而如果是排除,则过滤器包含除了哪些符合过滤条件集合的项之外的所有项。
Criteria.ShowAll 该属性决定是否显示所有的数据。当设为True时,该属性重置过滤器来显示所有的数据。当设为False时,假如没有任何过滤条件,将不显示任何数据。
&n
首页
上一页
1
2
3
4
下一页
尾页
3
/4/4
相关论文
上一篇
:
多彩文本信息发布系统—前台
下一篇
:
Web打字原型系统
推荐论文
本专业最新论文
Tags:
Excel
Web
组件
应用
【
返回顶部
】
相关栏目
自动化相关
计算机论文
工程管理论文
法律论文
医学论文
人力资源
电子专业
电气工程
英语论文
行政管理
电子商务
社科文学
教育论文
物流专业
金融专业
财务管理
会计专业
化学化工材料科学
电子通信
环境科学
经济类
机械模具类
报告,总结,申请书
其他专业论文