久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

Excel Web組件的應(yīng)用(一)

時(shí)間:2024-08-02 01:43:09 計(jì)算機(jī)畢業(yè)論文 我要投稿
  • 相關(guān)推薦

Excel Web組件的應(yīng)用(一)

一、選題目的和意義
 微軟的Excel是目前最經(jīng)常用到的辦公軟件之一,其功能是十分強(qiáng)大的。現(xiàn)在幾乎所有的電腦上都會(huì)安裝該軟件。然而當(dāng)今是一個(gè)信息共享的網(wǎng)絡(luò)時(shí)代,單機(jī)版的Excel在實(shí)現(xiàn)信息共享方面就會(huì)顯的麻煩,不好維護(hù)。因此微軟推出了Office Web Components(簡(jiǎn)稱OWC)這一組件。它能夠?qū)xcel的功能在互聯(lián)網(wǎng)上采用瀏覽器的方式使用。即用Office Web Components設(shè)計(jì)系統(tǒng),省掉了對(duì)客戶端的安裝和維護(hù)工作。
 通過(guò)對(duì)Office Web Components的學(xué)習(xí)和設(shè)計(jì),對(duì)其原理有一個(gè)深入的了解。并且希望通過(guò)這次的實(shí)踐運(yùn)用所學(xué)知識(shí),來(lái)培養(yǎng)我的動(dòng)手能力,故選擇Excel Web 組件作為我的畢業(yè)課題。
二、本選題在國(guó)內(nèi)外的研究現(xiàn)狀和發(fā)展趨勢(shì)
 本課題在國(guó)內(nèi)外的研究還是比較廣泛的,也涌現(xiàn)出了大量的應(yīng)用軟件,但是很難有比較通用的。這主要是因?yàn)槊總(gè)企業(yè)、單位現(xiàn)狀都是不同的。Excel 2000提供各種不同全新功能,主要是設(shè)計(jì)來(lái)幫助使用者進(jìn)行協(xié)同作業(yè)與信息分享,并通過(guò)Web來(lái)執(zhí)行更加深入細(xì)致的數(shù)據(jù)分析。為迎合這一要求,Office 推出了Office  Web Components(OWC)這一組件。Excel與Web整合所產(chǎn)生的最重要的效益之一,便是所有的使用者只需要使用游覽器便可以游覽豐富的Excel文件內(nèi)容。因此OWC當(dāng)前不僅大量應(yīng)用于Internet,在Intranet中也得到了廣泛的使用。因此本課題在國(guó)際上得到大力發(fā)展的趨勢(shì)是必然的。
三、課題設(shè)計(jì)方案  [主要說(shuō)明:研究(設(shè)計(jì))的基本內(nèi)容、觀點(diǎn)及擬采取的研究途徑。]
 研究設(shè)計(jì)的基本內(nèi)容是:
 Office Web Components的三個(gè)組件的研究和掌握:
Spreadsheet 組件: Spreadsheet 組件能夠在 Internet Explorer 中提供類似 Excel 的功能。Spreadsheet 組件使您可以獲得一個(gè)完整的電子表格、某一單元格區(qū)域或某一命名區(qū)域(如打印區(qū)域、自動(dòng)篩選區(qū)域或用戶定義名稱區(qū)域)并將其發(fā)布到 Web 頁(yè)。
PivotTable 組件: PivotTable 組件允許用戶通過(guò)向 Web 頁(yè)添加排序、分組、篩選、分級(jí)和其他數(shù)據(jù)處理功能來(lái)分析數(shù)據(jù)。本組件將 Excel 的列表功能(排序、自動(dòng)篩選和分級(jí))和數(shù)據(jù)透視表報(bào)表的自動(dòng)匯總功能結(jié)合運(yùn)行于 Internet Explorer 中的單一 ActiveX 組件中。
Chart 組件: Chart 是 Microsoft Office 使用的數(shù)據(jù)綁定 ActiveX 組件,用于向 Web 頁(yè)添加圖表功能當(dāng)該組件從 Excel 中發(fā)布以后,根據(jù)圖表數(shù)據(jù)在電子表格中的位置不同(在某區(qū)域中或在數(shù)據(jù)透視表報(bào)表中),得到的 Web 頁(yè)將不僅包含 Chart 組件,還包含 Spreadsheet 組件或 PivotTable 組件。


四、計(jì)劃進(jìn)度安排  [主要說(shuō)明:起止時(shí)間及分階段的進(jìn)度要求。]

 畢業(yè)論文(設(shè)計(jì))的進(jìn)度計(jì)劃:
 第一階段:      起止時(shí)間:2005.11.1-2005.11.22
                  進(jìn)度要求:盡快了解論文大體構(gòu)架,搜集相關(guān)資料, 撰寫(xiě)開(kāi)題報(bào)告書(shū)。
 第二階段:      起止時(shí)間:2005.11.23-2005.12.24
                   進(jìn)度要求:確定論文具體要論述的內(nèi)容,撰寫(xiě)論文。
 第三階段:      起止時(shí)間:2005.12.25-2006.1.15
                   進(jìn)度要求: 論文基本完成,提交指導(dǎo)老師修改,準(zhǔn)備答辯。
 
五、主要參考文獻(xiàn)

[1] David stearns.Programming Microsoft Office 2000 Web Components.Microsoft Corporation.
2004,5.

[2]  北京宏遠(yuǎn)電腦培訓(xùn)中心.Office 2000綜合應(yīng)用短期培訓(xùn)教程.北京工業(yè)大學(xué)出版社.
[3] China Microsoft.Microsoft Office 2000 Web 組件基礎(chǔ).
library/archives/library/techart/msowcBasics.asp.
[4] 李祥平、劉書(shū)秀等.圖解精通 Office 2003.中國(guó)水利水電出版社. 2004,1.
指導(dǎo)教師意見(jiàn)及建議

摘要:本文介紹了什么是Microsoft Office Web Components(簡(jiǎn)稱OWC),以及可以在什么地方使用它們。Microsoft Office Web Components主要包括三種組件: Spreadsheet 組件、Chart 組件和 PivotTable 組件。它們是用于向 Web 頁(yè)添加電子表格、圖表和數(shù)據(jù)處理功能的 ActiveX 組件的集合。由于 Office Web 組件是完全可編程的,因此在很多設(shè)計(jì)環(huán)境中都可以使用這些組件來(lái)建立復(fù)雜的、交互的和基于 Web 的解決方案。這些設(shè)計(jì)環(huán)境包括 Microsoft FrontPage、Microsoft Access 數(shù)據(jù)訪問(wèn)頁(yè)以及 Microsoft Visual Basic。當(dāng)然也可以直接在 Microsoft Excel 中發(fā)布這些 Office Web 組件。以下我將主要介紹從 Excel 中發(fā)布 Microsoft Office Web 組件的方法。然后我們將重點(diǎn)針對(duì)Spreadsheet 組件(電子表格組件)進(jìn)行深入研究。在Microsoft FrontPage中通過(guò)VBScript采用面向?qū)ο蟮姆椒ㄕ故臼褂秒娮颖砀窠M件編程模式的關(guān)鍵所在,實(shí)現(xiàn)Web頁(yè)與Excel的交互功能。
 關(guān)鍵詞:OWC,ActiveX, Spreadsheet Component, Chart Component, PivotTable Component, VBScript, Excel.

1 Office Web Components 介紹
 Microsoft的Office Web 組件首次包含在 Microsoft Office 2000 中。它們是用于向 Web 頁(yè)添加電子表格、圖表和數(shù)據(jù)處理功能的 ActiveX 組件的集合。在使用 Microsoft Internet Explorer 瀏覽包含 Office Web 組件的 Web 頁(yè)時(shí),您可以直接在 Internet Explorer 中處理顯示的數(shù)據(jù),如對(duì)數(shù)據(jù)進(jìn)行排序和篩選,輸入新的數(shù)值,展開(kāi)和折疊明細(xì)數(shù)據(jù),進(jìn)行行列旋轉(zhuǎn)以查看源數(shù)據(jù)的不同匯總信息等。Office Web 組件能夠提供所有這些功能。
 該組組件可以在Web頁(yè)中實(shí)現(xiàn)Excel的許多常見(jiàn)功能,并可以通過(guò)編寫(xiě)腳本代碼來(lái)添加一些組件中所缺少的功能。OWC是一組COM組件(COM也被稱作ActiveX)。利用這些組件,可以在Web游覽器以及其他傳統(tǒng)的編程環(huán)境下創(chuàng)建許多有用的數(shù)據(jù)處理與報(bào)表生成的解決方案。
 OWC的最大特點(diǎn)是它可以在Web頁(yè)面、FrontPage、Visual Basic等組件容器中使用,也可在內(nèi)存中做為不可見(jiàn)的使用 。OWC中的所有組件都支持豐富的編程接口集合,使得開(kāi)發(fā)者可以通過(guò)Microsoft VBScript、Microsoft Jscript、Microsoft VBA、Java、C++等多種語(yǔ)言來(lái)調(diào)用這些組件。
 OWC共有四種 Office Web 組件:Spreadsheet 組件(電子表格組件)、Chart 組件(圖表組件)、 PivotTable 組件(透視表組件)和Data Source組件(數(shù)據(jù)源組件)。其中Data Source 組件,用于將其他組件綁定到一個(gè)數(shù)據(jù)源;這個(gè)組件在 Access 的數(shù)據(jù)訪問(wèn)頁(yè)中廣泛使用,本文不做重點(diǎn)討論。在下面的章節(jié),我們將首先介紹前三種組件的主要功能。
2 組件介紹
2.1 電子表格組件
 Spreadsheet 組件像一個(gè)Excel電子表格的精簡(jiǎn)版,能夠在 Internet Explorer 中提供類似 Excel 的功能。使用這個(gè)組件,可以對(duì)數(shù)值進(jìn)行過(guò)濾、排序和滾動(dòng)數(shù)據(jù),也可以改變和重新計(jì)算數(shù)據(jù);還可以保護(hù)單元不被修改;甚至可以將數(shù)據(jù)重新裝載到Excel2000中。該組件如圖 1 所示。
 
 
 
 圖 1:顯示在 Internet Explorer 中的 Spreadsheet 組件
 當(dāng)數(shù)據(jù)從 Excel 中發(fā)布時(shí),Spreadsheet 組件將自動(dòng)使用這些數(shù)據(jù)對(duì)電子表格進(jìn)行填充。另外也可以通過(guò)編程來(lái)填充 Spreadsheet 組件。
 Spreadsheet 組件在 IE 中可提供如下功能:<1>支持 Excel 2000 中的大部分功能;2>重新計(jì)算引擎;<3>基本的電子表格格式;<4> 簡(jiǎn)單的電子表格用戶界面;<5>自動(dòng)篩選;<6>數(shù)據(jù)排序;<7>多重撤消。
2.2 數(shù)據(jù)透視表組件
 PivotTable 組件是為了提供交互的數(shù)據(jù)報(bào)表和分析功能而設(shè)計(jì)的。允許用戶在 Web 頁(yè)中使用排序、篩選、分級(jí)等功能來(lái)分析數(shù)據(jù)。本組件將 Excel 的數(shù)據(jù)透視表報(bào)表的自動(dòng)匯總功能和列表功能(排序、自動(dòng)篩選和分級(jí))相結(jié)合,運(yùn)行于 Internet Explorer 中。
 數(shù)據(jù)透視表列表中的源數(shù)據(jù)可以來(lái)自 Excel 電子表格、任何列表形式的 OLE DB 或 ODBC 數(shù)據(jù)源,或者用于 OLAP 服務(wù)的 Microsoft OLE DB 提供程序所支持的任何 OLAP 數(shù)據(jù)源。
 要理解數(shù)據(jù)透視表報(bào)表和列表的工作方式,應(yīng)熟悉如下區(qū)域,如圖 2 所示:
 
 圖 2:未填充的 PivotTable List 組件,顯示篩選區(qū)域、列區(qū)域、行區(qū)域和匯總/明細(xì)區(qū)域
 拖放區(qū)域   用于數(shù)據(jù)透視表列表中,能夠?qū)⒆侄瓮戏诺皆搮^(qū)域。
 篩選區(qū)域   數(shù)據(jù)透視表列表的頂端拖放區(qū)域。用于整個(gè)數(shù)據(jù)透視表列表的篩選。在篩選區(qū)提供了所有條目的下拉選擇列表。選中特定的條目將只允許該條目顯示在數(shù)據(jù)區(qū)域/明細(xì)數(shù)據(jù)區(qū)域。
 行區(qū)域   左邊的拖放區(qū)域。用于行的分組。
 列區(qū)域   篩選區(qū)域下面的區(qū)域。用于列的分組。
 數(shù)據(jù)區(qū)域   數(shù)據(jù)透視表列表的主要部分。用于所有的總計(jì)(求和、計(jì)數(shù)、最小值、最大值)和
 列表。
 明細(xì)數(shù)據(jù)區(qū)域   也是數(shù)據(jù)透視表列表的主要部分。用于支持明細(xì)數(shù)據(jù)的字段(即沒(méi)有應(yīng)用總計(jì)功能)。您可以通過(guò)單擊 PivotTable 組件工具欄上的“展開(kāi)/折疊”按鈕來(lái)顯示此區(qū)域。
   PivotTable 組件提供如下功能:<1>交叉列表(能夠旋轉(zhuǎn)行列以查看源數(shù)據(jù)的不同匯總信息);<2>瀏覽報(bào)表數(shù)據(jù);<3>動(dòng)態(tài)篩選(自動(dòng)篩選、按選定內(nèi)容篩選、篩選字段)和排序;<4>按行或按分組;<5>創(chuàng)建總計(jì)。
2.3 圖表組件
 Chart用于向 Web 頁(yè)添加圖表功能。該組件從 Excel 中發(fā)布以后,根據(jù)圖表數(shù)據(jù)在電子表格中的位置不同(在某區(qū)域中或在數(shù)據(jù)透視表報(bào)表中),得到的 Web 頁(yè)將不僅包含 Chart 組件,還包含 Spreadsheet 組件或 PivotTable 組件。在 Internet Explorer 中查看 Chart 組件時(shí),對(duì) Spreadsheet 或 PivotTable 組件中數(shù)據(jù)的更改將自動(dòng)顯示在 Chart 組件中。如圖 3 所示:
 
 圖 3:從 Excel 中發(fā)布的 Chart 組件
 如果從 Microsoft Excel 中發(fā)布 Chart 組件,它將自動(dòng)綁定到包含其數(shù)據(jù)的 Spreadsheet 或 PivotTable 組件。但是也可以通過(guò)編程將 Chart 組件綁定到一個(gè)數(shù)據(jù)源,或者可以提供數(shù)據(jù)以便使用代碼制圖。
3 創(chuàng)建 Office Web 組件
3.1 從 Microsoft  Excel 中發(fā)布組件
 在 Microsoft Excel 中創(chuàng)建 Office Web 組件有兩種方式:
 <1>在“文件”菜單上單擊“另存為 Web 頁(yè)”命令,在“另存為”對(duì)話框中單擊“發(fā)布”按鈕,在“發(fā)布為 Web 頁(yè)”對(duì)話框中選擇“添加交互對(duì)象”復(fù)選框并選擇所需功能,然后單擊“發(fā)布”按鈕。
 <2>在“文件”菜單上單擊“另存為 Web 頁(yè)”命令,在“另存為”對(duì)話框中選擇“添加交互”復(fù)選框,然后單擊“保存”按鈕。
 以上兩種方法都可以將 Excel 數(shù)據(jù)發(fā)布為 Web 頁(yè),這樣用戶便可以在IE 中直接修訂或更改數(shù)據(jù)。
 在 Excel 中選定的條目將決定在發(fā)布數(shù)據(jù)時(shí)使用的組件,如表1所示。
                          
 
 
 表1 Excel 中發(fā)布的條目與相應(yīng)的組建對(duì)照表
 
 當(dāng)試圖將某些電子表格導(dǎo)入HTML中時(shí),可能會(huì)遇到錯(cuò)誤信息。如果源電子表格是受口令保護(hù)的(通過(guò)使用工具|保護(hù)|保護(hù)工作表命令),Excel就不會(huì)允許將電子表格或任何區(qū)域發(fā)布到Web頁(yè)面中。因?yàn)閃eb頁(yè)面是純文本的文件,任何人都可以在任何文本編輯器中打開(kāi),瀏覽和修改它,所以如果允許這樣作的話,就會(huì)破壞安全性。當(dāng)電子表格的作者需要防止用戶修改某部分時(shí),電子表格就會(huì)常常被密碼保護(hù)。例如,Excel中的公司開(kāi)支報(bào)告就常常被密碼保護(hù),以防止員工不能修改有效性驗(yàn)證規(guī)則的公式。
   請(qǐng)注意,還可以通過(guò)使用“保護(hù)”功能來(lái)鎖定大多數(shù)的單元,以使用戶只能修改那些指定可以更新的單元。只要不使用口令來(lái)保護(hù)電子表格,就可以將電子表格發(fā)布或者拷貝到電子表格組件中,而且所有的保護(hù)設(shè)置都會(huì)被保留。
3.2 在 Microsoft Internet Explorer 中使用組件
 在Internet Explorer顯示時(shí)只有 Spreadsheet 和 PivotTable 組件為用戶提供了與組件交互的方法。二者均使用了工具欄來(lái)實(shí)現(xiàn)用戶的交互和操作。以下將簡(jiǎn)要討論組件運(yùn)行時(shí)的用戶界面。
3.2.1 Spreadsheet 組件的用戶界面
 Spreadsheet 組件工具欄(如圖 4 所示)?梢哉f(shuō)是 Excel 標(biāo)準(zhǔn)工具欄的精減版本。
 
 圖 4:Spreadsheet 組件工具欄
 Spreadsheet 組件工具欄中的很多按鈕與 Excel 中對(duì)應(yīng)按鈕具有相同的基本功能。除了幫助外,在 Excel 中右鍵單擊表格所打開(kāi)的快捷菜單上的命令同樣適用于電子表格的網(wǎng)格。
 
 表2  Spreadsheet 組件功能
按鈕 在 Spreadsheet 組件中的行為
撤消 可以撤消下列操作:排序、應(yīng)用篩選、刪除篩選、應(yīng)用數(shù)字格式、更改單元格的值、粘貼、更改字體格式(字形、字號(hào)、粗體、斜體、顏色)、更改單元格格式(填充、對(duì)齊)、清空單元格以及插入列或行。
剪切、復(fù)制、粘貼 支持向剪貼板剪切、復(fù)制或粘貼 HTML 或文本,但不支持剪切、復(fù)制或粘貼 BIFF、RTF 或其他格式。
 始終復(fù)制到操作系統(tǒng)剪貼板。
與 Excel 不同的是,在剪切、復(fù)制、粘貼操作中可以進(jìn)行干預(yù),這意味著在復(fù)制一個(gè)單元格后不必立即粘貼。
自動(dòng)求和  與 Excel 中的功能

相同
升序排序、降序排序 與 Excel 中的功能相同。快捷菜單命令層疊到“排序”菜單上,列出了要排序的字段標(biāo)題。在 Excel 中沒(méi)有“排序”對(duì)話框。
自動(dòng)篩選  在下拉列表中包含多個(gè)復(fù)選框來(lái)實(shí)現(xiàn)多選。
 沒(méi)有“前 10 個(gè)”或“自定義”選項(xiàng)。
 不能使用高級(jí)篩選功能。
導(dǎo)出到 Excel 打開(kāi) Microsoft Excel,并將所有數(shù)據(jù)從 Spreadsheet 組件復(fù)制到一個(gè)新的、只讀的工作表中,該工作表名稱為 OWCSheet#####.htm 格式(##### 為一隨機(jī)數(shù))。最多可有 65,536 行,這與 Excel 是一樣的,但是從 A 到 ZZ 共計(jì) 676 列,而 Excel 只有 256 列可用。如果使用的列超出 256 列,那么當(dāng)數(shù)據(jù)導(dǎo)出到 Excel 時(shí),超出的列中的數(shù)據(jù)將丟失。
屬性工具箱  顯示 Spreadsheet 組件的屬性工具箱。
幫助  顯示 Microsoft 電子表格幫助。
3.2.2 PivotTable 組件的用戶界面
 PivotTable 組件工具欄(如圖5 所示)具有與 Excel 中的數(shù)據(jù)透視表工具欄相同的基本功能,但它還有其他一些組件。
 
 圖 5:PivotTable 組件工具欄
 下表簡(jiǎn)述了 PivotTable 組件工具欄上組件的功能。
 
 表3 PivotTable 組件功能
組件 組件類型  操作
關(guān)于 按鈕  顯示“關(guān)于 Microsoft Office Web 組件”對(duì)話框。
復(fù)制 按鈕  將選定數(shù)據(jù)復(fù)制到剪貼板。
升序排序、降序排序 切換 打開(kāi)時(shí),按升序或降序?qū)α谢蛐凶侄芜M(jìn)行排序。關(guān)閉時(shí),數(shù)據(jù)恢復(fù)到保存時(shí)的方式。與 Excel 中的數(shù)據(jù)透視表報(bào)表不同的是,空格被排在頂端。
自動(dòng)篩選 切換 打開(kāi)時(shí),根據(jù)行字段或列字段下拉列表中復(fù)選框的狀態(tài)(選中或未選中)來(lái)顯示或隱藏條目。關(guān)閉時(shí),所有條目都將顯示。
自動(dòng)計(jì)算 菜單 允許選擇使用求和、計(jì)數(shù)、最小值、最大值功能來(lái)匯總字段?梢员粩(shù)據(jù)透視表列表的創(chuàng)建者禁用。
分類匯總 切換  顯示或隱藏選定字段的分類匯總。
移動(dòng)到行區(qū)域 按鈕  將選定的列字段移動(dòng)到行區(qū)域(選定內(nèi)容變?yōu)樾凶侄危?br /> 移動(dòng)到列區(qū)域 按鈕  將選定的行字段移動(dòng)到列區(qū)域(選定內(nèi)容變?yōu)榱凶侄危?br /> 移動(dòng)到篩選區(qū)域 按鈕 將選定字段移動(dòng)到篩選字段區(qū)域(選定內(nèi)容變?yōu)楹Y選)。能夠被數(shù)據(jù)透視表列表的創(chuàng)建者限制。
轉(zhuǎn)到明細(xì)數(shù)據(jù) 按鈕 將選定字段移動(dòng)到明細(xì)(數(shù)據(jù))區(qū)域。如果下面兩個(gè)選項(xiàng)中有一個(gè)為真,則不能移動(dòng)字段:數(shù)據(jù)透視表列表的創(chuàng)建者已限制對(duì)數(shù)據(jù)區(qū)的訪問(wèn);數(shù)據(jù)透視表列表是基于來(lái)自 OLAP 數(shù)據(jù)庫(kù)的源數(shù)據(jù)。
升級(jí) 按鈕  將選定字段向外移動(dòng)一級(jí)(通常從數(shù)據(jù)區(qū)域移動(dòng))。
降級(jí) 按鈕  將選定字段向內(nèi)移動(dòng)一級(jí)(通常從數(shù)據(jù)區(qū)域移動(dòng))。
展開(kāi)/折疊 切換 展開(kāi)或折疊選定字段、數(shù)據(jù)條目或數(shù)據(jù)區(qū)域中單元格的數(shù)據(jù)明細(xì)。與在 Excel 中不同的是,這里只有一個(gè)按鈕在“展開(kāi)”和“折疊”之間切換。而在 Excel 中,它們是兩個(gè)按鈕。
刷新 按鈕  從源列表或數(shù)據(jù)庫(kù)更新數(shù)據(jù)。
導(dǎo)出到 Excel 按鈕 啟動(dòng)或切換到 Excel,同時(shí)將數(shù)據(jù)以數(shù)據(jù)透視表報(bào)表格式復(fù)制到新的工作簿中。只有在需要進(jìn)一步分析數(shù)據(jù)時(shí)才使用此功能。請(qǐng)使用“復(fù)制”向 Excel 電子表格傳遞數(shù)據(jù)。
屬性工具箱 按鈕  顯示 PivotTable 組件的屬性工具箱。
字段列表 按鈕  顯示數(shù)據(jù)透視表列表的源數(shù)據(jù)中可用字段的層次列表。
幫助 按鈕  顯示 Microsoft 數(shù)據(jù)透視表列表的幫助。
3.3 在 Microsoft FrontPage 中使用組件
3.3.1 創(chuàng)建新網(wǎng)頁(yè)
 FrontPage 的“插入”菜單上的“組件”處,單擊要插入的組件。該組件將插入到當(dāng)前插入點(diǎn)。
 注意向文檔中插入 Chart組件時(shí),如果該 Web 頁(yè)中有可用的數(shù)據(jù)源,F(xiàn)rontPage 將自動(dòng)使用 Microsoft Office 圖表向?qū)崾緞?chuàng)建該組件。如果沒(méi)有可用的數(shù)據(jù)源,將收到說(shuō)明信息。通過(guò)圖表向?qū)?Chart 組件添加到 Web 頁(yè)后,F(xiàn)rontPage 也向網(wǎng)頁(yè)添加了 Data Source 組件,該組件用來(lái)將 Chart 組件綁定到所用的數(shù)據(jù)源。
 用于 Spreadsheet 組件時(shí)發(fā)布的 <object> 標(biāo)記:
 <object id="SpreadSheet1" classid="CLSID:0002E510-0000-0000-C000-000000000046">
 用于 Chart 組件時(shí)發(fā)布的 <object> 標(biāo)記:
 <object id="Chart1" classid="CLSID:0002E500-0000-0000-C000-000000000046" >
 用于 PivotTable 組件時(shí)發(fā)布的 <object> 標(biāo)記:
 <object id="PivotTable1" classid="CLSID:0002E520-0000-0000-C000-000000000046">
 用于 Data Source 組件時(shí)發(fā)布的 <object> 標(biāo)記:
 <object id="msodsc" classid="CLSID:0002E530-0000-0000-C000-000000000046">
 FrontPage 中的腳本
 在 FrontPage 中向組件添加腳本很容易。組件腳本可以使用 VBScript 或 Microsoft Jscript 來(lái)編寫(xiě),在此我們只使用了 VBScript 示例。
 如果 Web 頁(yè)包含一個(gè)以上的組件,那么只顯示一個(gè)屬性工具欄。屬性工具欄設(shè)置的變動(dòng)將影響所有活動(dòng)的組件。
 電子表格示例
 <script language="vbscript">
     <!--
    Sub Window_Onload()
 strPath = "d:\liukai\shili\book1.htm"
 Spreadsheet1.HTMLURL = strPath
    End Sub
 --!>
4 電子表格組件
本章主要研究的是spreadsheet組件的功能和編程。
4.1 電子表格組件基本功能
 電子表格組件支持Excel中排序和過(guò)濾功能,并且通過(guò)編程模型和用戶界面來(lái)提供這些功能。
 
 排序
 用戶在對(duì)電子表格區(qū)域排序時(shí)可以在電子表格用戶界面中,首先選擇需要排序的區(qū)域(或者在區(qū)域中選擇任意的一些單元),然后點(diǎn)擊降序工具條按鈕。同時(shí)我們也可以通過(guò)Range對(duì)象的Sort方法,使用排序功能。其功能是在用戶單擊或者雙擊一個(gè)列標(biāo)頭時(shí)就可以對(duì)列表進(jìn)行排序。
 在此我們需要說(shuō)明的是電子表格組件一次只能根據(jù)一列來(lái)對(duì)列表進(jìn)行排序,它不能像excel那樣可以同時(shí)根據(jù)最多三個(gè)關(guān)鍵列進(jìn)行排序(例如,先根據(jù)年齡排序,然后根據(jù)身高排序,最后根據(jù)體重排序)。但是可以通過(guò)在其腳本中編程實(shí)現(xiàn)多列排序的功能.可以使用下列函數(shù)模仿多列的排序。
  MultiColumnSort
  目的: 同時(shí)根據(jù)多列對(duì)電子表格進(jìn)行排序
  傳入:    電子表格中需要排序的區(qū)域的引用,
           被排序的列的列編號(hào)的數(shù)組,
           排序方向標(biāo)志的數(shù)組(和上面的數(shù)組相同大小)
  輸出:     無(wú) (完成排序動(dòng)作)
 Sub MultiColumnSort(Spreadsheet, Range, Columns, Directions)
    ‘ 啟動(dòng)一個(gè)撤消單位,以便可以以一個(gè)完整單位的任務(wù)進(jìn)行撤消
     Spreadsheet.BeginUndo()
    ‘ 關(guān)閉ScreenUpdating屬性,使得當(dāng)我們?cè)O(shè)置過(guò)濾,排序
    ‘ 和再過(guò)濾時(shí)電子表格不會(huì)重畫(huà)
     Spreadsheet.ScreenUpdating = False
    ‘ 現(xiàn)在遞減遍歷Columns數(shù)組和Directions數(shù)組,
    ‘ 實(shí)現(xiàn)我們需要的效果
     For ct = ubound(Columns) To lbound(Columns) Step -1
         0 is a guess for column headings
         Range.Sort Columns(ct), Directions(ct), 0
     Next 'ct
          ‘ 打開(kāi)ScreenUpdating屬性開(kāi)關(guān),使電子表格重畫(huà)
     Spreadsheet.ScreenUpdating = True
          ‘ 關(guān)閉一個(gè)撤消單位
     Spreadsheet.EndUndo()   
     End Sub 'MultiColumnSort()
 注釋:BeginUndo和EndUndo方法用來(lái)將所有的排序操作組合在一個(gè)撤消動(dòng)作塊中,當(dāng)用戶選擇撤消命令時(shí),這些排序動(dòng)作就會(huì)被一起撤消。
 多列排序?qū)嶋H上是按照被排序列所定義次序的相反次序執(zhí)行排序動(dòng)作。例如,需要先根據(jù)年齡進(jìn)行排序,然后再根據(jù)身高進(jìn)行排序,函數(shù)則會(huì)首先根據(jù)身高排序列表,然后再根據(jù)年齡進(jìn)行排序。以上函數(shù)接收三個(gè)參數(shù):一個(gè)需要排序的區(qū)域,一個(gè)列編號(hào)的數(shù)組,一個(gè)方向值的數(shù)組(降序或升序)。本例中函數(shù)降序遍歷這兩個(gè)數(shù)組,從而實(shí)現(xiàn)了多列排序的效果。
 過(guò)濾
 在Excel中,過(guò)濾時(shí)選擇單個(gè)項(xiàng)很方便,然而選擇多項(xiàng)需要使用高級(jí)自動(dòng)篩選對(duì)話框。而在Spreadsheet組件中,自動(dòng)過(guò)濾下拉列表為每一項(xiàng)都提供了一個(gè)簡(jiǎn)化復(fù)選框,可以快速切換所有項(xiàng)的狀態(tài),較之Excel更為方便。但是電子表格組件中的自動(dòng)過(guò)濾下拉列表沒(méi)有包括Excel中很有用的1個(gè)設(shè)置選項(xiàng)。例如,找不到”前N位”的選項(xiàng),這個(gè)選項(xiàng)使能夠快速過(guò)濾,得到前N位的項(xiàng)。不過(guò),我們可以通過(guò)調(diào)用電子表格組件的編程模型來(lái)實(shí)現(xiàn)此功能。
 TopNFilter
 目的: 根據(jù)給定的列編號(hào)過(guò)濾出列表的前N項(xiàng)
 輸入:    電子表格和區(qū)域的引用、列編號(hào),
           要過(guò)濾出的行的行數(shù),以及標(biāo)識(shí)過(guò)濾出前N行還是后N行的方向值
 Out:     無(wú) (完成所需的過(guò)濾)
 Sub TopNFilter(Spreadsheet, Range, ColumnNum, N, Direction)
     Set c = Spreadsheet.Constants
     Set rngData = Range
     Set af = Spreadsheet.ActiveSheet.AutoFilter
     ‘ 啟動(dòng)一個(gè)撤消單元,以便將來(lái)能以完整的單元進(jìn)行撤消
     Spreadsheet.BeginUndo()
     ‘ 關(guān)閉ScreenUpdating屬性開(kāi)關(guān),使得當(dāng)我們?cè)谠O(shè)置過(guò)濾,排序和再次應(yīng)用
     ‘ 過(guò)濾時(shí),電子表格不會(huì)重畫(huà)
     Spreadsheet.ScreenUpdating = False
     ‘ 清除任何現(xiàn)存的過(guò)濾定義
     ClearFilters Spreadsheet
     ‘ 在給定的數(shù)據(jù)區(qū)域中根據(jù)傳入的列號(hào)的列排序列表
     If LCase(Direction) = "bottom" Then
         rngData.Sort ColumnNum, c.ssAscending, c.ssNo
     Else
         rngData.Sort ColumnNum, c.ssDescending, c.ssNo
     End If
   ‘ 如果N+1,N+2等等的行和第N行的值相同,
 ‘ 則”前N位”過(guò)濾的結(jié)果可以會(huì)包含多過(guò)N的行。
 ‘ 因此循環(huán)查看N+1等行是否和第N行的值相同,
 ‘ 直到查找到一個(gè)不相同的值為止。
     vNValue = rngData.Cells(N,ColumnNum).Value
         While rngData.Cells(N+1,ColumnNum).Value = vNValue
         N = N + 1
     Wend
        ‘ N現(xiàn)在的值就是我們需要包括在過(guò)濾結(jié)果中的行的行數(shù)。
     Set fltr = af.Filters(ColumnNum)
     fltr.Criteria.FilterFunction = c.ssFilterFunctionInclude
         For ct = 1 To N
         fltr.Criteria.Add(rngData.Cells(ct,ColumnNum).Text)
     Next
         ‘ 最后引用自動(dòng)過(guò)濾
     af.Apply
      ‘ 打開(kāi)ScreenUpdating屬性開(kāi)關(guān),使電子表格重畫(huà)
     Spreadsheet.ScreenUpdating = True
      ‘ 結(jié)束撤消單元
     Spreadsheet.EndUndo()
  End Sub 'TopNFilter()
  “前N位”過(guò)濾功能似乎很簡(jiǎn)單,只要先排序,然后查看最開(kāi)始的N行即可。但是真正的”前N位”過(guò)濾功能可能會(huì)返回超過(guò)N行的結(jié)果,因?yàn)樗鼘?shí)際上的意思是”包括前N位的值的那些行”。如果在排序后,第10,11位的值相同,那么”前10位”過(guò)濾會(huì)將這些產(chǎn)品一起返回,因?yàn)樗鼈兌荚谇?0位的值當(dāng)中。還有,上述代碼通過(guò)簡(jiǎn)單的改變排序方向(升序和降序)實(shí)現(xiàn)了過(guò)濾出前N位和后N位的功能。
裝 載 數(shù) 據(jù)
  Spreadsheet組件可以通過(guò)多種方式加載和保存數(shù)據(jù),可以按實(shí)際情況靈活的運(yùn)用這些方式。
 可以通過(guò)4種方式將數(shù)據(jù)裝載到電子表格組件中:
 1 通過(guò)交互從Excel2000中發(fā)布一個(gè)電子表格或區(qū)域。
 2 從Excel2000向電子表格組件中拷貝一個(gè)區(qū)域。
 3 當(dāng)電子表格組件位于設(shè)計(jì)器中時(shí),可以直接在組件中輸入數(shù)據(jù)或一組新的公式。
4指定一個(gè)URL來(lái)裝載數(shù)據(jù),這個(gè)URL會(huì)返回一個(gè)HTML文檔,其中至少包含一個(gè)HTML表格。此外,也可以從一個(gè)URL處裝載以逗號(hào)分隔的文本數(shù)據(jù)(CSV)。
    前三種我們?cè)谝郧罢鹿?jié)已經(jīng)有所交待,在此我們只正研究第4種從URL處裝載。
  在屬性工具箱中,可以讓電子表格組件打開(kāi)一個(gè)特定的URL,并將該URL處查找到的第一個(gè)HTML表格進(jìn)行加載(注意:電子表格組件不能直接從一個(gè)二進(jìn)制XLS文件中裝載數(shù)據(jù))。CSV(以逗號(hào)間隔的文本)缺乏格式化或公式的信息,因此,只能從CSV流中加載原始數(shù)據(jù)。數(shù)據(jù)是保留在URL所指的文件中的,電子表格組件會(huì)在每次初始化時(shí)加載這些數(shù)據(jù)。當(dāng)然,這個(gè)URL可以方便地指向一個(gè)Microsoft的動(dòng)態(tài)服務(wù)器頁(yè)面(ASP)或者是一個(gè)CGI程序,這個(gè)頁(yè)面或程序從企業(yè)數(shù)據(jù)庫(kù)或其它的存儲(chǔ)系統(tǒng)中動(dòng)態(tài)的生成HTML表格,這樣就使得能夠?qū)?dòng)態(tài),最新的數(shù)據(jù)加載到電子表格組件中。
4.2 編程模型要點(diǎn)
     以下講述的是spreadsheet組件編程模型的要點(diǎn),讓我們明白該組件應(yīng)該如何應(yīng)用。在這里會(huì)介紹幾種常用的屬性和方法。    
 在腳本中使用枚舉
   COM和OLE自動(dòng)化允許組件定義枚舉,每個(gè)枚舉都是指定的一組常量,作用類似編程語(yǔ)言中的類型聲明?梢詫⒁粋(gè)枚舉用作屬性或方法的參數(shù),這使得如VB和VC這樣的環(huán)境能夠顯示包含一個(gè)枚舉中有效常量的語(yǔ)句完成下拉列表。OWC和其它許多ActiveX組件一樣,包含了一系列預(yù)定義的枚舉。
   不過(guò),在例如Web頁(yè)面或asp頁(yè)面這樣的腳本環(huán)境中,不存在類型的概念。因此,在現(xiàn)有的這些腳本語(yǔ)言中不能使用枚舉成員名稱,因?yàn)檫@些語(yǔ)言無(wú)法知道一個(gè)特定的常量(例如ssHAlignLeft)對(duì)應(yīng)的是什么。這意味著的VBScript腳本代碼會(huì)因?yàn)椴荒茏悦枋龅纳衩財(cái)?shù)字而混亂不堪。
   為了盡量解決這個(gè)問(wèn)題,所有的OWC組件都有一個(gè)名為Constants的頂級(jí)屬性,在腳本語(yǔ)言中可以使用這個(gè)屬性訪問(wèn)組件的各種枚舉成員。例如,如果需要在VBScript代碼中使用ssHAlignLeft常量使一個(gè)單元的內(nèi)容居左顯示,您可以這樣書(shū)寫(xiě)代碼:
 MyRange.HAlignment = Spreadsheet1.Constants.ssHAlignLeft
 為了使用一個(gè)枚舉常量,您可以把它當(dāng)作Constants對(duì)象的一個(gè)屬性來(lái)引用它,而對(duì)象將返回枚舉成員的正確的值。
 constants屬性返回一個(gè)對(duì)象,它允許 VBScript 程序員使用已命名的常量。本屬性可應(yīng)用于每個(gè)頂層容器對(duì)象(ChartSpace、DataSourceControl、PivotTable 和 Spreadsheet)。它返回一個(gè)含有所有已命名常量的對(duì)象,這些常量都可用于“Microsoft Office Web 組件”的類型庫(kù)中(不論 Constants 屬性應(yīng)用于何種對(duì)象,它總返回已命名常量的完整集合)。
 要在 VBScript 中使用已命名的常量,則可將某對(duì)象變量設(shè)置為由 Constants 屬性所返回的對(duì)象,然后在代碼中使用此對(duì)象來(lái)限定已命名的常量,如下例所示。
 Set c = ChartSpace1.Constants
 Set valueAxis = ChartSpace1.Charts(0).Axes(c.chAxisPositionLeft)
 如果只使用一個(gè)常量,則可以直接在表達(dá)式中使用 Constants 屬性。如下例所示。
Spreadsheet1.ActiveSheet.Export"sstest.xls", Spreadsheet1.Constants.ssExportActionNone
 請(qǐng)注意,如果您計(jì)劃在您的函數(shù)的多處使用常量對(duì)象,那么設(shè)置一個(gè)等于Constants對(duì)象的變量是很有用的,這樣做既避免了不必要的打字,也能夠提高性能。例如,您可以這樣書(shū)寫(xiě)代碼:
 Set c = Spreadsheet1.Constants
 MyRange.HAlignment = c.ssHAlignRight
 MyRange.VAlignment = c.ssVAlignBottom
 Constants對(duì)象只在沒(méi)有枚舉概念的腳本語(yǔ)言中有意義。如果您是在VB,VBA或C++中編寫(xiě)代碼,請(qǐng)象平常那樣直接使用枚舉,不用理會(huì)Constants對(duì)象。
 將數(shù)據(jù)輸入組件
   之前我已經(jīng)講述了多個(gè)將數(shù)據(jù)輸入組件的技巧。我現(xiàn)在將更詳細(xì)的描述編程模型中的這些技巧。表4列出了與裝載數(shù)據(jù)相關(guān)的屬性和方法,所有這些屬性和方法都通過(guò)電子表格對(duì)象的接口公布。
 
 表 4 裝載數(shù)據(jù)相關(guān)的屬性和方法
 屬性或方法  描述
 Spreadsheet.DataType 字符串類型的屬性,告訴電子表格組件在多個(gè)用于裝載數(shù)據(jù)的屬性被設(shè)置時(shí),應(yīng)該使用哪個(gè)屬性來(lái)裝載數(shù)據(jù),賦給這個(gè)屬性的值就是應(yīng)該用來(lái)裝載數(shù)據(jù)的那個(gè)屬性的名稱――例如,將這個(gè)屬性設(shè)置為HTMLURL,會(huì)使組件裝載從屬性HTMLURL中的URL處 獲得的數(shù)據(jù)。
 Spreadsheet.HTMLURL 字符串類型的屬性,包含了一個(gè)URL,可以從這個(gè)URL處裝載電子表格的數(shù)據(jù)。這個(gè)URL必須返回一個(gè)包含了表格的HTML文檔。使用Excel 2000中來(lái)保存為HTML格式的電子表格可以使用這個(gè)屬性來(lái)裝載,這個(gè)屬性也可以是一個(gè)從數(shù)據(jù)庫(kù)中實(shí)時(shí)生成表格的ASP頁(yè)面或CGI程序。
 Spreadsheet.CSVURL 字符串類型的屬性,和屬性HTMLURL類似,不過(guò)它希望從URL處獲得的數(shù)據(jù)格式是CSV格式的。就象HTMLURL屬性一樣,這個(gè)URL可以是一個(gè)從數(shù)據(jù)庫(kù)中實(shí)時(shí)生成表格的ASP頁(yè)面或CGI程序。
 Spreadsheet.LoadText 可以將一個(gè)被分隔的文本文件載入電子表格的方法。與CSV格式不同的是,這個(gè)文本文件可以使用任何字段分隔符。
  
使用區(qū)域
   電子表格組件中最常使用的編程接口是Range對(duì)象。很多方法都返回Range對(duì)象,當(dāng)需要對(duì)一個(gè)區(qū)域的各單元進(jìn)行修改,格式化,排序和設(shè)置自動(dòng)篩選時(shí),都會(huì)用到Range對(duì)象。表5顯示了在建立電子表格組件的解決方案時(shí)應(yīng)該了解的Range對(duì)象的屬性和方法。
 
 表 5 Range對(duì)象主要的屬性和方法
 屬性或方法  介紹
 Spreadsheet.Range 該方法接受一個(gè)區(qū)域引用(例如A1:B2或A:B),返回一個(gè)Range對(duì)象。因?yàn)橐粋(gè)區(qū)域可以只有一個(gè)單元,因此您也可以傳入單個(gè)單元的引用(例如A1)。該方法也可以接受兩個(gè)不同的單元引用,而返回一個(gè)含蓋這兩個(gè)單元的區(qū)域。
 Range.Address 該屬性返回一個(gè)區(qū)域的地址(例如,A1:B2)。
 Range.Cells 將該屬性當(dāng)作多個(gè)單元的一個(gè)集合,也就是說(shuō)可以使用For Each循環(huán)訪問(wèn)其中的每一個(gè)單元。該屬性也可以以二維數(shù)組的形式來(lái)訪問(wèn)。例如,MyRange.Cells(1,3).Value會(huì)返回區(qū)域中行1,列3的值。
 Range.Column, Range.Row  這些屬性指出區(qū)域中首行和首列的編號(hào)。當(dāng)您在一個(gè)區(qū)域的行和列中進(jìn)行迭代時(shí),如果需要知道當(dāng)前位于哪行哪列,這個(gè)屬性非常有用。
 Range.Columns, Range.Rows 雖然在名稱上和前兩個(gè)屬性非常相似,但是這對(duì)屬性返回的是Range對(duì)象包含的行或者列的集合。Range.Columns.Count和Range.Rows.Count可以告訴你當(dāng)前區(qū)域中行和列的數(shù)目。
 Range.Value 該屬性獲得或設(shè)置區(qū)域的值。雖然幫助文件說(shuō)在區(qū)域由多個(gè)單元構(gòu)成時(shí)Range.Value會(huì)返回一個(gè)二維變量數(shù)組,但實(shí)際上當(dāng)前版本中這是沒(méi)有實(shí)現(xiàn)的。不過(guò),Range.Value可以接受一個(gè)二維數(shù)組的變量,來(lái)將數(shù)據(jù)輸入?yún)^(qū)域中,當(dāng)你需要使用文字值設(shè)置一個(gè)或多個(gè)單元值,或者是需要獲得一個(gè)單元的無(wú)格式(即沒(méi)有格式化的值)的值時(shí),可以使用這個(gè)屬性。
 Range.Text Range.Text屬性返回Range.Value屬性的格式化版本。當(dāng)您需要在消息框或另一個(gè)用戶界面元素中顯示格式化的值時(shí)這個(gè)屬性很有用,該屬性值就是您在添加AutoFilter對(duì)象的過(guò)濾條件時(shí)傳入的值。
  
 格式化
 在將數(shù)據(jù)載入電子表格后,您可能需要通過(guò)編程來(lái)控制格式化。每個(gè)單元都有自己的字體,對(duì)齊方式,邊框,顏色和數(shù)字格式屬性,所有這些特征都可以使用表6中的屬性來(lái)設(shè)置。
 
 表 6 用于格式化的屬性
 屬性  描述
 Range.NumberFormat 字符串類型的屬性,控制單元中數(shù)字的格式?梢砸矛F(xiàn)有的格式名稱來(lái)使用眾多的內(nèi)置格式(例如Currency)。也可以創(chuàng)建自定義格式(例如,#,###,使1000顯示為1,000)。
 Range.Font 返回一個(gè)許多組件都能使用的常用的Font對(duì)象。Range.Font允許設(shè)置Font對(duì)象的的多個(gè)屬性,例如Name,Size,Bold,Italic,Color和Underline。請(qǐng)注意,如果需要,可以在Font.Color屬性中使用IE的顏色名。
 Range.Halignment, Range.Valignment 這兩個(gè)屬性控制區(qū)域的各單元水平和垂直方向上的文本對(duì)齊方式。每個(gè)屬性中定義了各自可以使用的對(duì)齊方式的枚舉值。
 Range.Borders 該屬性返回一個(gè)Borders對(duì)象,可以通過(guò)它來(lái)設(shè)置每個(gè)單元邊框的各個(gè)特性,如邊框線的線粗,樣式及顏色。
 
  組件級(jí)的外觀和行為
 許多屬性和方法會(huì)影響整個(gè)電子表格組件。表7列出了定制的解決方案中最有趣的屬性和方法。
 
 表7影響整個(gè)電子表格的主要屬性
 Property  Description
 Spreadsheet.DisplayColHeaders, Spreadsheet.DisplayRowHeaders 控制是否顯示行頭和列頭。這兩個(gè)屬性的缺省值是True。通常,您可以在需要使用您自己的代碼來(lái)對(duì)電子表格界面進(jìn)行完全控制時(shí)將這兩個(gè)屬性設(shè)置為False。
 Spreadsheet.DisplayGridlines 控制是否顯示網(wǎng)格線。缺省是要顯示的,如果在定制解決方案中,要在需要單元分隔線的地方使用邊框,則常關(guān)閉這個(gè)屬性。
 Spreadsheet.DisplayPropertyToolbox 控制是否顯示屬性工具箱。將屬性置為true則顯示,置為false就會(huì)隱藏。
 Spreadsheet.DisplayTitleBar 控制是否顯示標(biāo)題欄。缺省是顯示標(biāo)題欄的。可以使用下面介紹的TitleBar屬性來(lái)修改標(biāo)題欄上的內(nèi)容和格式。
 Spreadsheet.DisplayToolbar 控制是否顯示工具條。缺省是顯示。
 Spreadsheet.EnableAutoCalculate 控制電子表格模型如何重算。如果這個(gè)屬性被置為false,電子表格模型不會(huì)自動(dòng)重算;必須調(diào)用工作表對(duì)象的Calculate方法,才能看到改變輸入后的新結(jié)果。在計(jì)劃修改一系列的輸入,并且希望只有在完成所有的修改后,才重算模型時(shí),這個(gè)屬性非常有用。這個(gè)屬性缺省為True――模型會(huì)在電子表格被修改時(shí)自動(dòng)進(jìn)行重算。
 Spreadsheet.ScreenUpdating 缺省情況下,電子表格在屏幕上的顯示總是反映最新的數(shù)據(jù),不過(guò)如果計(jì)劃執(zhí)行大量的操作,而不希望電子表格在每一個(gè)操作之后都會(huì)因?yàn)楦露W爍?梢詫⑦@個(gè)屬性置為Fasle。將這個(gè)屬性重新設(shè)回True會(huì)觸發(fā)一個(gè)徹底的重繪動(dòng)作。
 Spreadsheet.Selection 返回當(dāng)前選擇的對(duì)象?梢允褂肰BA或VBScript中的TypeName函數(shù)來(lái)判斷這個(gè)對(duì)象的類型。
 Spreadsheet.TitleBar 使您可以訪問(wèn)電子表格的標(biāo)題欄,可以改變標(biāo)題欄的文本和格式。
 
 排序和過(guò)濾
 表8 列出了在電子表格組件中排序和過(guò)濾數(shù)據(jù)時(shí)可以使用的屬性和方法。
 
 表8 具有排序和過(guò)濾功能的屬性和方法
 屬性或方法  介紹
 Range.Sort  根據(jù)給定的列和排序方法對(duì)區(qū)域進(jìn)行排序。
 Worksheet.AutoFilter  該屬性返回一個(gè)AutoFilter對(duì)象,該對(duì)象可用來(lái)設(shè)置當(dāng)前過(guò)濾器的細(xì)節(jié)。
 AutoFilter.Filters  該屬性返回當(dāng)前自動(dòng)過(guò)濾區(qū)域的過(guò)濾器集合。一個(gè)過(guò)濾器對(duì)象應(yīng)用于自動(dòng)過(guò)濾區(qū)域中的一列,過(guò)濾器對(duì)象的下標(biāo)和對(duì)應(yīng)區(qū)域中列的下標(biāo)相對(duì)應(yīng)。
 AutoFilter.Apply  該方法應(yīng)用一個(gè)新的自動(dòng)過(guò)濾。在設(shè)置完過(guò)濾條件后,必須調(diào)用這個(gè)方法來(lái)實(shí)應(yīng)用過(guò)濾器。
 Criteria.FilterFunction  該屬性控制符合過(guò)濾條件的項(xiàng)是包括在過(guò)濾器中,還是被排除在過(guò)濾器之外。如果是包含,則過(guò)濾器僅包含符合過(guò)濾條件集合的項(xiàng),而如果是排除,則過(guò)濾器包含除了哪些符合過(guò)濾條件集合的項(xiàng)之外的所有項(xiàng)。
 Criteria.ShowAll  該屬性決定是否顯示所有的數(shù)據(jù)。當(dāng)設(shè)為True時(shí),該屬性重置過(guò)濾器來(lái)顯示所有的數(shù)據(jù)。當(dāng)設(shè)為False時(shí),假如沒(méi)有任何過(guò)濾條件,將不顯示任何數(shù)據(jù)。
 Criteria.Add  該方法將一個(gè)新的過(guò)濾條件添加到過(guò)濾器中。
 Range.AutoFilter  該方法針針對(duì)一個(gè)給定的區(qū)域打開(kāi)AutoFilter開(kāi)關(guān)。首先調(diào)用這個(gè)方法,然后使用Worksheet.AutoFilter屬性(如上所述)訪問(wèn)過(guò)濾器并設(shè)置過(guò)濾條件。
 
保   護(hù)
   如果需要保護(hù)電子表格的某部分,使您的用戶不能修改單元內(nèi)容或改變單元格式,您需要使用控制保護(hù)功能的各屬性。表9列出了常用的具有保護(hù)功能的屬性,并給出如何使用每一個(gè)屬性的簡(jiǎn)短的描述。
 請(qǐng)注意,保護(hù)設(shè)置即通過(guò)用戶界面應(yīng)用到用戶交互中,也應(yīng)用到代碼中執(zhí)行的操作中。因此如果您在一個(gè)保護(hù)選項(xiàng)被啟用的情況下需要?jiǎng)h除一行,您必須在執(zhí)行刪除操作前將Protection對(duì)象的Enabled屬性設(shè)置為False,并在完成操作后,將Enabled屬性設(shè)回True以便返回到受保護(hù)的狀態(tài)。
 
 表 9 常用的具有保護(hù)功能的各屬性
 屬性  描述
 Worksheet.Protection  返回一個(gè)Protection對(duì)象,可以使用它設(shè)置各種保護(hù)選項(xiàng),從而啟用各種全局操作(例如:插入和刪除行)。
 Protection.Enabled  控制一般情況下是否啟用保護(hù)。在需要使用保護(hù)選項(xiàng)或鎖定單元格時(shí),首先設(shè)置選項(xiàng)或者鎖定單元格,然后將這個(gè)屬性設(shè)為True。當(dāng)需要在代碼中執(zhí)行操作時(shí),可以將該屬性設(shè)為False來(lái)暫時(shí)禁止保護(hù)功能。
 Protection.AllowInsertingColumns, Protection.AllowInsertingRows, Protection.AllowDeletingColumns, Protection.AllowDeletingRows  允許或禁止在電子表格中插入、刪除列或行。例如,如果AllowInsertingRows被設(shè)為False,則電子表格會(huì)禁止所有用來(lái)插入一行的命令,包括哪些編程模型中的命令。
 Protection.AllowSizingAllColumns, Protection.AllowSizingAllRows  允許或禁止調(diào)整列或行的大小。例如,如果AllowSizingAllRows被設(shè)為False,電子表格就不會(huì)允許用戶調(diào)整行的大小,也不會(huì)允許您通過(guò)代碼來(lái)這樣做。
 Protection.AllowSorting  允許或禁止在電子表格中排序數(shù)據(jù)。將AllowSorting設(shè)為False會(huì)禁止用戶對(duì)任何區(qū)域中的內(nèi)容進(jìn)行排序。
 Protection.AllowFiltering  允許或禁止使用自動(dòng)篩選功能。將這個(gè)屬性設(shè)為False會(huì)禁止用戶啟用自動(dòng)過(guò)濾功能。
 
  撤  消
 表10 列出了當(dāng)您控制電子表格組件的撤消機(jī)制時(shí)會(huì)用到的有關(guān)的屬性和方法。
 
 表 10 控制撤消機(jī)制相關(guān)的屬性和方法
 屬性和方法  描述
 Spreadsheet.BeginUndo 一個(gè)使您可以將一系列的操作看作一個(gè)撤消操作的方法。例如,如果您調(diào)用BeginUndo方法,然后執(zhí)行了三個(gè)不同的排序動(dòng)作,或改變了許多單元,您可以一下撤消所有這些操作。
 Spreadsheet.EndUndo 一個(gè)標(biāo)記您的邏輯撤消單元的結(jié)束的方法。在調(diào)用BeginUndo方法和調(diào)用EndUndo方法之間執(zhí)行的所有操作會(huì)被當(dāng)前一個(gè)單一的單元來(lái)撤消。
 Spreadsheet.EnableUndo 該屬性控制撤消功能是否可用。缺省是可用的。您可能需要暫時(shí)禁止這個(gè)功能,以便節(jié)約內(nèi)存或在代碼中執(zhí)行大量的操作。
  
 
  參 考 文 獻(xiàn):
 [1]  David stearns. 《Programming Microsoft Office 2000 Web Components》.Microsoft Corporation. 2004.5
[2]  北京宏遠(yuǎn)電腦培訓(xùn)中心. 《Office 2000綜合應(yīng)用短期培訓(xùn)教程》. 北京工業(yè)大學(xué)出版社
[3]  China Microsoft.《Microsoft Office 2000 Web 組件基礎(chǔ)》

【Excel Web組件的應(yīng)用(一)】相關(guān)文章:

利用PowerBuilder開(kāi)發(fā)WEB應(yīng)用03-19

Excel在教學(xué)與管理中的應(yīng)用03-21

論Excel在日常工作中的應(yīng)用03-27

分布式對(duì)象技術(shù)及其在Web上的應(yīng)用03-18

硬件密碼組件與軟件密碼組件的比較研究03-18

基于用戶的Web應(yīng)用站點(diǎn)集成ASP+SQL03-08

淺析Excel數(shù)據(jù)分析在醫(yī)學(xué)統(tǒng)計(jì)中的應(yīng)用03-18

COM組件技術(shù)在現(xiàn)場(chǎng)總線控制系統(tǒng)組態(tài)軟件中的應(yīng)用03-18

基于Web技術(shù)的高校監(jiān)考安排系統(tǒng)的設(shè)計(jì)與應(yīng)用02-27