- 相關(guān)推薦
Excel Web組件的應(yīng)用(一)
一、選題目的和意義
微軟的Excel是目前最經(jīng)常用到的辦公軟件之一,其功能是十分強(qiáng)大的,F(xiàn)在幾乎所有的電腦上都會安裝該軟件。然而當(dāng)今是一個(gè)信息共享的網(wǎng)絡(luò)時(shí)代,單機(jī)版的Excel在實(shí)現(xiàn)信息共享方面就會顯的麻煩,不好維護(hù)。因此微軟推出了Office Web Components(簡稱OWC)這一組件。它能夠?qū)xcel的功能在互聯(lián)網(wǎng)上采用瀏覽器的方式使用。即用Office Web Components設(shè)計(jì)系統(tǒng),省掉了對客戶端的安裝和維護(hù)工作。
通過對Office Web Components的學(xué)習(xí)和設(shè)計(jì),對其原理有一個(gè)深入的了解。并且希望通過這次的實(shí)踐運(yùn)用所學(xué)知識,來培養(yǎng)我的動手能力,故選擇Excel Web 組件作為我的畢業(yè)課題。
二、本選題在國內(nèi)外的研究現(xiàn)狀和發(fā)展趨勢
本課題在國內(nèi)外的研究還是比較廣泛的,也涌現(xiàn)出了大量的應(yīng)用軟件,但是很難有比較通用的。這主要是因?yàn)槊總(gè)企業(yè)、單位現(xiàn)狀都是不同的。Excel 2000提供各種不同全新功能,主要是設(shè)計(jì)來幫助使用者進(jìn)行協(xié)同作業(yè)與信息分享,并通過Web來執(zhí)行更加深入細(xì)致的數(shù)據(jù)分析。為迎合這一要求,Office 推出了Office Web Components(OWC)這一組件。Excel與Web整合所產(chǎn)生的最重要的效益之一,便是所有的使用者只需要使用游覽器便可以游覽豐富的Excel文件內(nèi)容。因此OWC當(dāng)前不僅大量應(yīng)用于Internet,在Intranet中也得到了廣泛的使用。因此本課題在國際上得到大力發(fā)展的趨勢是必然的。
三、課題設(shè)計(jì)方案 [主要說明:研究(設(shè)計(jì))的基本內(nèi)容、觀點(diǎn)及擬采取的研究途徑。]
研究設(shè)計(jì)的基本內(nèi)容是:
Office Web Components的三個(gè)組件的研究和掌握:
Spreadsheet 組件: Spreadsheet 組件能夠在 Internet Explorer 中提供類似 Excel 的功能。Spreadsheet 組件使您可以獲得一個(gè)完整的電子表格、某一單元格區(qū)域或某一命名區(qū)域(如打印區(qū)域、自動篩選區(qū)域或用戶定義名稱區(qū)域)并將其發(fā)布到 Web 頁。
PivotTable 組件: PivotTable 組件允許用戶通過向 Web 頁添加排序、分組、篩選、分級和其他數(shù)據(jù)處理功能來分析數(shù)據(jù)。本組件將 Excel 的列表功能(排序、自動篩選和分級)和數(shù)據(jù)透視表報(bào)表的自動匯總功能結(jié)合運(yùn)行于 Internet Explorer 中的單一 ActiveX 組件中。
Chart 組件: Chart 是 Microsoft Office 使用的數(shù)據(jù)綁定 ActiveX 組件,用于向 Web 頁添加圖表功能當(dāng)該組件從 Excel 中發(fā)布以后,根據(jù)圖表數(shù)據(jù)在電子表格中的位置不同(在某區(qū)域中或在數(shù)據(jù)透視表報(bào)表中),得到的 Web 頁將不僅包含 Chart 組件,還包含 Spreadsheet 組件或 PivotTable 組件。
四、計(jì)劃進(jìn)度安排 [主要說明:起止時(shí)間及分階段的進(jìn)度要求。]
畢業(yè)論文(設(shè)計(jì))的進(jìn)度計(jì)劃:
第一階段: 起止時(shí)間:2005.11.1-2005.11.22
進(jìn)度要求:盡快了解論文大體構(gòu)架,搜集相關(guān)資料, 撰寫開題報(bào)告書。
第二階段: 起止時(shí)間:2005.11.23-2005.12.24
進(jìn)度要求:確定論文具體要論述的內(nèi)容,撰寫論文。
第三階段: 起止時(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] 李祥平、劉書秀等.圖解精通 Office 2003.中國水利水電出版社. 2004,1.
指導(dǎo)教師意見及建議
摘要:本文介紹了什么是Microsoft Office Web Components(簡稱OWC),以及可以在什么地方使用它們。Microsoft Office Web Components主要包括三種組件: Spreadsheet 組件、Chart 組件和 PivotTable 組件。它們是用于向 Web 頁添加電子表格、圖表和數(shù)據(jù)處理功能的 ActiveX 組件的集合。由于 Office Web 組件是完全可編程的,因此在很多設(shè)計(jì)環(huán)境中都可以使用這些組件來建立復(fù)雜的、交互的和基于 Web 的解決方案。這些設(shè)計(jì)環(huán)境包括 Microsoft FrontPage、Microsoft Access 數(shù)據(jù)訪問頁以及 Microsoft Visual Basic。當(dāng)然也可以直接在 Microsoft Excel 中發(fā)布這些 Office Web 組件。以下我將主要介紹從 Excel 中發(fā)布 Microsoft Office Web 組件的方法。然后我們將重點(diǎn)針對Spreadsheet 組件(電子表格組件)進(jìn)行深入研究。在Microsoft FrontPage中通過VBScript采用面向?qū)ο蟮姆椒ㄕ故臼褂秒娮颖砀窠M件編程模式的關(guān)鍵所在,實(shí)現(xiàn)Web頁與Excel的交互功能。
關(guān)鍵詞:OWC,ActiveX, Spreadsheet Component, Chart Component, PivotTable Component, VBScript, Excel.
1 Office Web Components 介紹
Microsoft的Office Web 組件首次包含在 Microsoft Office 2000 中。它們是用于向 Web 頁添加電子表格、圖表和數(shù)據(jù)處理功能的 ActiveX 組件的集合。在使用 Microsoft Internet Explorer 瀏覽包含 Office Web 組件的 Web 頁時(shí),您可以直接在 Internet Explorer 中處理顯示的數(shù)據(jù),如對數(shù)據(jù)進(jìn)行排序和篩選,輸入新的數(shù)值,展開和折疊明細(xì)數(shù)據(jù),進(jìn)行行列旋轉(zhuǎn)以查看源數(shù)據(jù)的不同匯總信息等。Office Web 組件能夠提供所有這些功能。
該組組件可以在Web頁中實(shí)現(xiàn)Excel的許多常見功能,并可以通過編寫腳本代碼來添加一些組件中所缺少的功能。OWC是一組COM組件(COM也被稱作ActiveX)。利用這些組件,可以在Web游覽器以及其他傳統(tǒng)的編程環(huán)境下創(chuàng)建許多有用的數(shù)據(jù)處理與報(bào)表生成的解決方案。
OWC的最大特點(diǎn)是它可以在Web頁面、FrontPage、Visual Basic等組件容器中使用,也可在內(nèi)存中做為不可見的使用 。OWC中的所有組件都支持豐富的編程接口集合,使得開發(fā)者可以通過Microsoft VBScript、Microsoft Jscript、Microsoft VBA、Java、C++等多種語言來調(diào)用這些組件。
OWC共有四種 Office Web 組件:Spreadsheet 組件(電子表格組件)、Chart 組件(圖表組件)、 PivotTable 組件(透視表組件)和Data Source組件(數(shù)據(jù)源組件)。其中Data Source 組件,用于將其他組件綁定到一個(gè)數(shù)據(jù)源;這個(gè)組件在 Access 的數(shù)據(jù)訪問頁中廣泛使用,本文不做重點(diǎn)討論。在下面的章節(jié),我們將首先介紹前三種組件的主要功能。
2 組件介紹
2.1 電子表格組件
Spreadsheet 組件像一個(gè)Excel電子表格的精簡版,能夠在 Internet Explorer 中提供類似 Excel 的功能。使用這個(gè)組件,可以對數(shù)值進(jìn)行過濾、排序和滾動數(shù)據(jù),也可以改變和重新計(jì)算數(shù)據(jù);還可以保護(hù)單元不被修改;甚至可以將數(shù)據(jù)重新裝載到Excel2000中。該組件如圖 1 所示。
圖 1:顯示在 Internet Explorer 中的 Spreadsheet 組件
當(dāng)數(shù)據(jù)從 Excel 中發(fā)布時(shí),Spreadsheet 組件將自動使用這些數(shù)據(jù)對電子表格進(jìn)行填充。另外也可以通過編程來填充 Spreadsheet 組件。
Spreadsheet 組件在 IE 中可提供如下功能:<1>支持 Excel 2000 中的大部分功能;2>重新計(jì)算引擎;<3>基本的電子表格格式;<4> 簡單的電子表格用戶界面;<5>自動篩選;<6>數(shù)據(jù)排序;<7>多重撤消。
2.2 數(shù)據(jù)透視表組件
PivotTable 組件是為了提供交互的數(shù)據(jù)報(bào)表和分析功能而設(shè)計(jì)的。允許用戶在 Web 頁中使用排序、篩選、分級等功能來分析數(shù)據(jù)。本組件將 Excel 的數(shù)據(jù)透視表報(bào)表的自動匯總功能和列表功能(排序、自動篩選和分級)相結(jié)合,運(yùn)行于 Internet Explorer 中。
數(shù)據(jù)透視表列表中的源數(shù)據(jù)可以來自 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ù)的字段(即沒有應(yīng)用總計(jì)功能)。您可以通過單擊 PivotTable 組件工具欄上的“展開/折疊”按鈕來顯示此區(qū)域。
PivotTable 組件提供如下功能:<1>交叉列表(能夠旋轉(zhuǎn)行列以查看源數(shù)據(jù)的不同匯總信息);<2>瀏覽報(bào)表數(shù)據(jù);<3>動態(tài)篩選(自動篩選、按選定內(nèi)容篩選、篩選字段)和排序;<4>按行或按分組;<5>創(chuàng)建總計(jì)。
2.3 圖表組件
Chart用于向 Web 頁添加圖表功能。該組件從 Excel 中發(fā)布以后,根據(jù)圖表數(shù)據(jù)在電子表格中的位置不同(在某區(qū)域中或在數(shù)據(jù)透視表報(bào)表中),得到的 Web 頁將不僅包含 Chart 組件,還包含 Spreadsheet 組件或 PivotTable 組件。在 Internet Explorer 中查看 Chart 組件時(shí),對 Spreadsheet 或 PivotTable 組件中數(shù)據(jù)的更改將自動顯示在 Chart 組件中。如圖 3 所示:
圖 3:從 Excel 中發(fā)布的 Chart 組件
如果從 Microsoft Excel 中發(fā)布 Chart 組件,它將自動綁定到包含其數(shù)據(jù)的 Spreadsheet 或 PivotTable 組件。但是也可以通過編程將 Chart 組件綁定到一個(gè)數(shù)據(jù)源,或者可以提供數(shù)據(jù)以便使用代碼制圖。
3 創(chuàng)建 Office Web 組件
3.1 從 Microsoft Excel 中發(fā)布組件
在 Microsoft Excel 中創(chuàng)建 Office Web 組件有兩種方式:
<1>在“文件”菜單上單擊“另存為 Web 頁”命令,在“另存為”對話框中單擊“發(fā)布”按鈕,在“發(fā)布為 Web 頁”對話框中選擇“添加交互對象”復(fù)選框并選擇所需功能,然后單擊“發(fā)布”按鈕。
<2>在“文件”菜單上單擊“另存為 Web 頁”命令,在“另存為”對話框中選擇“添加交互”復(fù)選框,然后單擊“保存”按鈕。
以上兩種方法都可以將 Excel 數(shù)據(jù)發(fā)布為 Web 頁,這樣用戶便可以在IE 中直接修訂或更改數(shù)據(jù)。
在 Excel 中選定的條目將決定在發(fā)布數(shù)據(jù)時(shí)使用的組件,如表1所示。
表1 Excel 中發(fā)布的條目與相應(yīng)的組建對照表
當(dāng)試圖將某些電子表格導(dǎo)入HTML中時(shí),可能會遇到錯誤信息。如果源電子表格是受口令保護(hù)的(通過使用工具|保護(hù)|保護(hù)工作表命令),Excel就不會允許將電子表格或任何區(qū)域發(fā)布到Web頁面中。因?yàn)閃eb頁面是純文本的文件,任何人都可以在任何文本編輯器中打開,瀏覽和修改它,所以如果允許這樣作的話,就會破壞安全性。當(dāng)電子表格的作者需要防止用戶修改某部分時(shí),電子表格就會常常被密碼保護(hù)。例如,Excel中的公司開支報(bào)告就常常被密碼保護(hù),以防止員工不能修改有效性驗(yàn)證規(guī)則的公式。
請注意,還可以通過使用“保護(hù)”功能來鎖定大多數(shù)的單元,以使用戶只能修改那些指定可以更新的單元。只要不使用口令來保護(hù)電子表格,就可以將電子表格發(fā)布或者拷貝到電子表格組件中,而且所有的保護(hù)設(shè)置都會被保留。
3.2 在 Microsoft Internet Explorer 中使用組件
在Internet Explorer顯示時(shí)只有 Spreadsheet 和 PivotTable 組件為用戶提供了與組件交互的方法。二者均使用了工具欄來實(shí)現(xiàn)用戶的交互和操作。以下將簡要討論組件運(yùn)行時(shí)的用戶界面。
3.2.1 Spreadsheet 組件的用戶界面
Spreadsheet 組件工具欄(如圖 4 所示)?梢哉f是 Excel 標(biāo)準(zhǔn)工具欄的精減版本。
圖 4:Spreadsheet 組件工具欄
Spreadsheet 組件工具欄中的很多按鈕與 Excel 中對應(yīng)按鈕具有相同的基本功能。除了幫助外,在 Excel 中右鍵單擊表格所打開的快捷菜單上的命令同樣適用于電子表格的網(wǎng)格。
表2 Spreadsheet 組件功能
按鈕 在 Spreadsheet 組件中的行為
撤消 可以撤消下列操作:排序、應(yīng)用篩選、刪除篩選、應(yīng)用數(shù)字格式、更改單元格的值、粘貼、更改字體格式(字形、字號、粗體、斜體、顏色)、更改單元格格式(填充、對齊)、清空單元格以及插入列或行。
剪切、復(fù)制、粘貼 支持向剪貼板剪切、復(fù)制或粘貼 HTML 或文本,但不支持剪切、復(fù)制或粘貼 BIFF、RTF 或其他格式。
始終復(fù)制到操作系統(tǒng)剪貼板。
與 Excel 不同的是,在剪切、復(fù)制、粘貼操作中可以進(jìn)行干預(yù),這意味著在復(fù)制一個(gè)單元格后不必立即粘貼。
自動求和 與 Excel 中的功能
升序排序、降序排序 與 Excel 中的功能相同?旖莶藛蚊顚盈B到“排序”菜單上,列出了要排序的字段標(biāo)題。在 Excel 中沒有“排序”對話框。
自動篩選 在下拉列表中包含多個(gè)復(fù)選框來實(shí)現(xiàn)多選。
沒有“前 10 個(gè)”或“自定義”選項(xiàng)。
不能使用高級篩選功能。
導(dǎo)出到 Excel 打開 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 組件工具欄
下表簡述了 PivotTable 組件工具欄上組件的功能。
表3 PivotTable 組件功能
組件 組件類型 操作
關(guān)于 按鈕 顯示“關(guān)于 Microsoft Office Web 組件”對話框。
復(fù)制 按鈕 將選定數(shù)據(jù)復(fù)制到剪貼板。
升序排序、降序排序 切換 打開時(shí),按升序或降序?qū)α谢蛐凶侄芜M(jìn)行排序。關(guān)閉時(shí),數(shù)據(jù)恢復(fù)到保存時(shí)的方式。與 Excel 中的數(shù)據(jù)透視表報(bào)表不同的是,空格被排在頂端。
自動篩選 切換 打開時(shí),根據(jù)行字段或列字段下拉列表中復(fù)選框的狀態(tài)(選中或未選中)來顯示或隱藏條目。關(guān)閉時(shí),所有條目都將顯示。
自動計(jì)算 菜單 允許選擇使用求和、計(jì)數(shù)、最小值、最大值功能來匯總字段?梢员粩(shù)據(jù)透視表列表的創(chuàng)建者禁用。
分類匯總 切換 顯示或隱藏選定字段的分類匯總。
移動到行區(qū)域 按鈕 將選定的列字段移動到行區(qū)域(選定內(nèi)容變?yōu)樾凶侄危?br /> 移動到列區(qū)域 按鈕 將選定的行字段移動到列區(qū)域(選定內(nèi)容變?yōu)榱凶侄危?br /> 移動到篩選區(qū)域 按鈕 將選定字段移動到篩選字段區(qū)域(選定內(nèi)容變?yōu)楹Y選)。能夠被數(shù)據(jù)透視表列表的創(chuàng)建者限制。
轉(zhuǎn)到明細(xì)數(shù)據(jù) 按鈕 將選定字段移動到明細(xì)(數(shù)據(jù))區(qū)域。如果下面兩個(gè)選項(xiàng)中有一個(gè)為真,則不能移動字段:數(shù)據(jù)透視表列表的創(chuàng)建者已限制對數(shù)據(jù)區(qū)的訪問;數(shù)據(jù)透視表列表是基于來自 OLAP 數(shù)據(jù)庫的源數(shù)據(jù)。
升級 按鈕 將選定字段向外移動一級(通常從數(shù)據(jù)區(qū)域移動)。
降級 按鈕 將選定字段向內(nèi)移動一級(通常從數(shù)據(jù)區(qū)域移動)。
展開/折疊 切換 展開或折疊選定字段、數(shù)據(jù)條目或數(shù)據(jù)區(qū)域中單元格的數(shù)據(jù)明細(xì)。與在 Excel 中不同的是,這里只有一個(gè)按鈕在“展開”和“折疊”之間切換。而在 Excel 中,它們是兩個(gè)按鈕。
刷新 按鈕 從源列表或數(shù)據(jù)庫更新數(shù)據(jù)。
導(dǎo)出到 Excel 按鈕 啟動或切換到 Excel,同時(shí)將數(shù)據(jù)以數(shù)據(jù)透視表報(bào)表格式復(fù)制到新的工作簿中。只有在需要進(jìn)一步分析數(shù)據(jù)時(shí)才使用此功能。請使用“復(fù)制”向 Excel 電子表格傳遞數(shù)據(jù)。
屬性工具箱 按鈕 顯示 PivotTable 組件的屬性工具箱。
字段列表 按鈕 顯示數(shù)據(jù)透視表列表的源數(shù)據(jù)中可用字段的層次列表。
幫助 按鈕 顯示 Microsoft 數(shù)據(jù)透視表列表的幫助。
3.3 在 Microsoft FrontPage 中使用組件
3.3.1 創(chuàng)建新網(wǎng)頁
FrontPage 的“插入”菜單上的“組件”處,單擊要插入的組件。該組件將插入到當(dāng)前插入點(diǎn)。
注意向文檔中插入 Chart組件時(shí),如果該 Web 頁中有可用的數(shù)據(jù)源,F(xiàn)rontPage 將自動使用 Microsoft Office 圖表向?qū)崾緞?chuàng)建該組件。如果沒有可用的數(shù)據(jù)源,將收到說明信息。通過圖表向?qū)?Chart 組件添加到 Web 頁后,F(xiàn)rontPage 也向網(wǎng)頁添加了 Data Source 組件,該組件用來將 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 來編寫,在此我們只使用了 VBScript 示例。
如果 Web 頁包含一個(gè)以上的組件,那么只顯示一個(gè)屬性工具欄。屬性工具欄設(shè)置的變動將影響所有活動的組件。
電子表格示例
<script language="vbscript">
<!--
Sub Window_Onload()
strPath = "d:\liukai\shili\book1.htm"
Spreadsheet1.HTMLURL = strPath
End Sub
--!>
4 電子表格組件
本章主要研究的是spreadsheet組件的功能和編程。
4.1 電子表格組件基本功能
電子表格組件支持Excel中排序和過濾功能,并且通過編程模型和用戶界面來提供這些功能。
排序
用戶在對電子表格區(qū)域排序時(shí)可以在電子表格用戶界面中,首先選擇需要排序的區(qū)域(或者在區(qū)域中選擇任意的一些單元),然后點(diǎn)擊降序工具條按鈕。同時(shí)我們也可以通過Range對象的Sort方法,使用排序功能。其功能是在用戶單擊或者雙擊一個(gè)列標(biāo)頭時(shí)就可以對列表進(jìn)行排序。
在此我們需要說明的是電子表格組件一次只能根據(jù)一列來對列表進(jìn)行排序,它不能像excel那樣可以同時(shí)根據(jù)最多三個(gè)關(guān)鍵列進(jìn)行排序(例如,先根據(jù)年齡排序,然后根據(jù)身高排序,最后根據(jù)體重排序)。但是可以通過在其腳本中編程實(shí)現(xiàn)多列排序的功能.可以使用下列函數(shù)模仿多列的排序。
MultiColumnSort
目的: 同時(shí)根據(jù)多列對電子表格進(jìn)行排序
傳入: 電子表格中需要排序的區(qū)域的引用,
被排序的列的列編號的數(shù)組,
排序方向標(biāo)志的數(shù)組(和上面的數(shù)組相同大小)
輸出: 無 (完成排序動作)
Sub MultiColumnSort(Spreadsheet, Range, Columns, Directions)
‘ 啟動一個(gè)撤消單位,以便可以以一個(gè)完整單位的任務(wù)進(jìn)行撤消
Spreadsheet.BeginUndo()
‘ 關(guān)閉ScreenUpdating屬性,使得當(dāng)我們設(shè)置過濾,排序
‘ 和再過濾時(shí)電子表格不會重畫
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
‘ 打開ScreenUpdating屬性開關(guān),使電子表格重畫
Spreadsheet.ScreenUpdating = True
‘ 關(guān)閉一個(gè)撤消單位
Spreadsheet.EndUndo()
End Sub 'MultiColumnSort()
注釋:BeginUndo和EndUndo方法用來將所有的排序操作組合在一個(gè)撤消動作塊中,當(dāng)用戶選擇撤消命令時(shí),這些排序動作就會被一起撤消。
多列排序?qū)嶋H上是按照被排序列所定義次序的相反次序執(zhí)行排序動作。例如,需要先根據(jù)年齡進(jìn)行排序,然后再根據(jù)身高進(jìn)行排序,函數(shù)則會首先根據(jù)身高排序列表,然后再根據(jù)年齡進(jìn)行排序。以上函數(shù)接收三個(gè)參數(shù):一個(gè)需要排序的區(qū)域,一個(gè)列編號的數(shù)組,一個(gè)方向值的數(shù)組(降序或升序)。本例中函數(shù)降序遍歷這兩個(gè)數(shù)組,從而實(shí)現(xiàn)了多列排序的效果。
過濾
在Excel中,過濾時(shí)選擇單個(gè)項(xiàng)很方便,然而選擇多項(xiàng)需要使用高級自動篩選對話框。而在Spreadsheet組件中,自動過濾下拉列表為每一項(xiàng)都提供了一個(gè)簡化復(fù)選框,可以快速切換所有項(xiàng)的狀態(tài),較之Excel更為方便。但是電子表格組件中的自動過濾下拉列表沒有包括Excel中很有用的1個(gè)設(shè)置選項(xiàng)。例如,找不到”前N位”的選項(xiàng),這個(gè)選項(xiàng)使能夠快速過濾,得到前N位的項(xiàng)。不過,我們可以通過調(diào)用電子表格組件的編程模型來實(shí)現(xiàn)此功能。
TopNFilter
目的: 根據(jù)給定的列編號過濾出列表的前N項(xiàng)
輸入: 電子表格和區(qū)域的引用、列編號,
要過濾出的行的行數(shù),以及標(biāo)識過濾出前N行還是后N行的方向值
Out: 無 (完成所需的過濾)
Sub TopNFilter(Spreadsheet, Range, ColumnNum, N, Direction)
Set c = Spreadsheet.Constants
Set rngData = Range
Set af = Spreadsheet.ActiveSheet.AutoFilter
‘ 啟動一個(gè)撤消單元,以便將來能以完整的單元進(jìn)行撤消
Spreadsheet.BeginUndo()
‘ 關(guān)閉ScreenUpdating屬性開關(guān),使得當(dāng)我們在設(shè)置過濾,排序和再次應(yīng)用
‘ 過濾時(shí),電子表格不會重畫
Spreadsheet.ScreenUpdating = False
‘ 清除任何現(xiàn)存的過濾定義
ClearFilters Spreadsheet
‘ 在給定的數(shù)據(jù)區(qū)域中根據(jù)傳入的列號的列排序列表
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位”過濾的結(jié)果可以會包含多過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)在的值就是我們需要包括在過濾結(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
‘ 最后引用自動過濾
af.Apply
‘ 打開ScreenUpdating屬性開關(guān),使電子表格重畫
Spreadsheet.ScreenUpdating = True
‘ 結(jié)束撤消單元
Spreadsheet.EndUndo()
End Sub 'TopNFilter()
“前N位”過濾功能似乎很簡單,只要先排序,然后查看最開始的N行即可。但是真正的”前N位”過濾功能可能會返回超過N行的結(jié)果,因?yàn)樗鼘?shí)際上的意思是”包括前N位的值的那些行”。如果在排序后,第10,11位的值相同,那么”前10位”過濾會將這些產(chǎn)品一起返回,因?yàn)樗鼈兌荚谇?0位的值當(dāng)中。還有,上述代碼通過簡單的改變排序方向(升序和降序)實(shí)現(xiàn)了過濾出前N位和后N位的功能。
裝 載 數(shù) 據(jù)
Spreadsheet組件可以通過多種方式加載和保存數(shù)據(jù),可以按實(shí)際情況靈活的運(yùn)用這些方式。
可以通過4種方式將數(shù)據(jù)裝載到電子表格組件中:
1 通過交互從Excel2000中發(fā)布一個(gè)電子表格或區(qū)域。
2 從Excel2000向電子表格組件中拷貝一個(gè)區(qū)域。
3 當(dāng)電子表格組件位于設(shè)計(jì)器中時(shí),可以直接在組件中輸入數(shù)據(jù)或一組新的公式。
4指定一個(gè)URL來裝載數(shù)據(jù),這個(gè)URL會返回一個(gè)HTML文檔,其中至少包含一個(gè)HTML表格。此外,也可以從一個(gè)URL處裝載以逗號分隔的文本數(shù)據(jù)(CSV)。
前三種我們在以前章節(jié)已經(jīng)有所交待,在此我們只正研究第4種從URL處裝載。
在屬性工具箱中,可以讓電子表格組件打開一個(gè)特定的URL,并將該URL處查找到的第一個(gè)HTML表格進(jìn)行加載(注意:電子表格組件不能直接從一個(gè)二進(jìn)制XLS文件中裝載數(shù)據(jù))。CSV(以逗號間隔的文本)缺乏格式化或公式的信息,因此,只能從CSV流中加載原始數(shù)據(jù)。數(shù)據(jù)是保留在URL所指的文件中的,電子表格組件會在每次初始化時(shí)加載這些數(shù)據(jù)。當(dāng)然,這個(gè)URL可以方便地指向一個(gè)Microsoft的動態(tài)服務(wù)器頁面(ASP)或者是一個(gè)CGI程序,這個(gè)頁面或程序從企業(yè)數(shù)據(jù)庫或其它的存儲系統(tǒng)中動態(tài)的生成HTML表格,這樣就使得能夠?qū)討B(tài),最新的數(shù)據(jù)加載到電子表格組件中。
4.2 編程模型要點(diǎn)
以下講述的是spreadsheet組件編程模型的要點(diǎn),讓我們明白該組件應(yīng)該如何應(yīng)用。在這里會介紹幾種常用的屬性和方法。
在腳本中使用枚舉
COM和OLE自動化允許組件定義枚舉,每個(gè)枚舉都是指定的一組常量,作用類似編程語言中的類型聲明?梢詫⒁粋(gè)枚舉用作屬性或方法的參數(shù),這使得如VB和VC這樣的環(huán)境能夠顯示包含一個(gè)枚舉中有效常量的語句完成下拉列表。OWC和其它許多ActiveX組件一樣,包含了一系列預(yù)定義的枚舉。
不過,在例如Web頁面或asp頁面這樣的腳本環(huán)境中,不存在類型的概念。因此,在現(xiàn)有的這些腳本語言中不能使用枚舉成員名稱,因?yàn)檫@些語言無法知道一個(gè)特定的常量(例如ssHAlignLeft)對應(yīng)的是什么。這意味著的VBScript腳本代碼會因?yàn)椴荒茏悦枋龅纳衩財(cái)?shù)字而混亂不堪。
為了盡量解決這個(gè)問題,所有的OWC組件都有一個(gè)名為Constants的頂級屬性,在腳本語言中可以使用這個(gè)屬性訪問組件的各種枚舉成員。例如,如果需要在VBScript代碼中使用ssHAlignLeft常量使一個(gè)單元的內(nèi)容居左顯示,您可以這樣書寫代碼:
MyRange.HAlignment = Spreadsheet1.Constants.ssHAlignLeft
為了使用一個(gè)枚舉常量,您可以把它當(dāng)作Constants對象的一個(gè)屬性來引用它,而對象將返回枚舉成員的正確的值。
constants屬性返回一個(gè)對象,它允許 VBScript 程序員使用已命名的常量。本屬性可應(yīng)用于每個(gè)頂層容器對象(ChartSpace、DataSourceControl、PivotTable 和 Spreadsheet)。它返回一個(gè)含有所有已命名常量的對象,這些常量都可用于“Microsoft Office Web 組件”的類型庫中(不論 Constants 屬性應(yīng)用于何種對象,它總返回已命名常量的完整集合)。
要在 VBScript 中使用已命名的常量,則可將某對象變量設(shè)置為由 Constants 屬性所返回的對象,然后在代碼中使用此對象來限定已命名的常量,如下例所示。
Set c = ChartSpace1.Constants
Set valueAxis = ChartSpace1.Charts(0).Axes(c.chAxisPositionLeft)
如果只使用一個(gè)常量,則可以直接在表達(dá)式中使用 Constants 屬性。如下例所示。
Spreadsheet1.ActiveSheet.Export"sstest.xls", Spreadsheet1.Constants.ssExportActionNone
請注意,如果您計(jì)劃在您的函數(shù)的多處使用常量對象,那么設(shè)置一個(gè)等于Constants對象的變量是很有用的,這樣做既避免了不必要的打字,也能夠提高性能。例如,您可以這樣書寫代碼:
Set c = Spreadsheet1.Constants
MyRange.HAlignment = c.ssHAlignRight
MyRange.VAlignment = c.ssVAlignBottom
Constants對象只在沒有枚舉概念的腳本語言中有意義。如果您是在VB,VBA或C++中編寫代碼,請象平常那樣直接使用枚舉,不用理會Constants對象。
將數(shù)據(jù)輸入組件
之前我已經(jīng)講述了多個(gè)將數(shù)據(jù)輸入組件的技巧。我現(xiàn)在將更詳細(xì)的描述編程模型中的這些技巧。表4列出了與裝載數(shù)據(jù)相關(guān)的屬性和方法,所有這些屬性和方法都通過電子表格對象的接口公布。
表 4 裝載數(shù)據(jù)相關(guān)的屬性和方法
屬性或方法 描述
Spreadsheet.DataType 字符串類型的屬性,告訴電子表格組件在多個(gè)用于裝載數(shù)據(jù)的屬性被設(shè)置時(shí),應(yīng)該使用哪個(gè)屬性來裝載數(shù)據(jù),賦給這個(gè)屬性的值就是應(yīng)該用來裝載數(shù)據(jù)的那個(gè)屬性的名稱――例如,將這個(gè)屬性設(shè)置為HTMLURL,會使組件裝載從屬性HTMLURL中的URL處 獲得的數(shù)據(jù)。
Spreadsheet.HTMLURL 字符串類型的屬性,包含了一個(gè)URL,可以從這個(gè)URL處裝載電子表格的數(shù)據(jù)。這個(gè)URL必須返回一個(gè)包含了表格的HTML文檔。使用Excel 2000中來保存為HTML格式的電子表格可以使用這個(gè)屬性來裝載,這個(gè)屬性也可以是一個(gè)從數(shù)據(jù)庫中實(shí)時(shí)生成表格的ASP頁面或CGI程序。
Spreadsheet.CSVURL 字符串類型的屬性,和屬性HTMLURL類似,不過它希望從URL處獲得的數(shù)據(jù)格式是CSV格式的。就象HTMLURL屬性一樣,這個(gè)URL可以是一個(gè)從數(shù)據(jù)庫中實(shí)時(shí)生成表格的ASP頁面或CGI程序。
Spreadsheet.LoadText 可以將一個(gè)被分隔的文本文件載入電子表格的方法。與CSV格式不同的是,這個(gè)文本文件可以使用任何字段分隔符。
使用區(qū)域
電子表格組件中最常使用的編程接口是Range對象。很多方法都返回Range對象,當(dāng)需要對一個(gè)區(qū)域的各單元進(jìn)行修改,格式化,排序和設(shè)置自動篩選時(shí),都會用到Range對象。表5顯示了在建立電子表格組件的解決方案時(shí)應(yīng)該了解的Range對象的屬性和方法。
表 5 Range對象主要的屬性和方法
屬性或方法 介紹
Spreadsheet.Range 該方法接受一個(gè)區(qū)域引用(例如A1:B2或A:B),返回一個(gè)Range對象。因?yàn)橐粋(gè)區(qū)域可以只有一個(gè)單元,因此您也可以傳入單個(gè)單元的引用(例如A1)。該方法也可以接受兩個(gè)不同的單元引用,而返回一個(gè)含蓋這兩個(gè)單元的區(qū)域。
Range.Address 該屬性返回一個(gè)區(qū)域的地址(例如,A1:B2)。
Range.Cells 將該屬性當(dāng)作多個(gè)單元的一個(gè)集合,也就是說可以使用For Each循環(huán)訪問其中的每一個(gè)單元。該屬性也可以以二維數(shù)組的形式來訪問。例如,MyRange.Cells(1,3).Value會返回區(qū)域中行1,列3的值。
Range.Column, Range.Row 這些屬性指出區(qū)域中首行和首列的編號。當(dāng)您在一個(gè)區(qū)域的行和列中進(jìn)行迭代時(shí),如果需要知道當(dāng)前位于哪行哪列,這個(gè)屬性非常有用。
Range.Columns, Range.Rows 雖然在名稱上和前兩個(gè)屬性非常相似,但是這對屬性返回的是Range對象包含的行或者列的集合。Range.Columns.Count和Range.Rows.Count可以告訴你當(dāng)前區(qū)域中行和列的數(shù)目。
Range.Value 該屬性獲得或設(shè)置區(qū)域的值。雖然幫助文件說在區(qū)域由多個(gè)單元構(gòu)成時(shí)Range.Value會返回一個(gè)二維變量數(shù)組,但實(shí)際上當(dāng)前版本中這是沒有實(shí)現(xiàn)的。不過,Range.Value可以接受一個(gè)二維數(shù)組的變量,來將數(shù)據(jù)輸入?yún)^(qū)域中,當(dāng)你需要使用文字值設(shè)置一個(gè)或多個(gè)單元值,或者是需要獲得一個(gè)單元的無格式(即沒有格式化的值)的值時(shí),可以使用這個(gè)屬性。
Range.Text Range.Text屬性返回Range.Value屬性的格式化版本。當(dāng)您需要在消息框或另一個(gè)用戶界面元素中顯示格式化的值時(shí)這個(gè)屬性很有用,該屬性值就是您在添加AutoFilter對象的過濾條件時(shí)傳入的值。
格式化
在將數(shù)據(jù)載入電子表格后,您可能需要通過編程來控制格式化。每個(gè)單元都有自己的字體,對齊方式,邊框,顏色和數(shù)字格式屬性,所有這些特征都可以使用表6中的屬性來設(shè)置。
表 6 用于格式化的屬性
屬性 描述
Range.NumberFormat 字符串類型的屬性,控制單元中數(shù)字的格式?梢砸矛F(xiàn)有的格式名稱來使用眾多的內(nèi)置格式(例如Currency)。也可以創(chuàng)建自定義格式(例如,#,###,使1000顯示為1,000)。
Range.Font 返回一個(gè)許多組件都能使用的常用的Font對象。Range.Font允許設(shè)置Font對象的的多個(gè)屬性,例如Name,Size,Bold,Italic,Color和Underline。請注意,如果需要,可以在Font.Color屬性中使用IE的顏色名。
Range.Halignment, Range.Valignment 這兩個(gè)屬性控制區(qū)域的各單元水平和垂直方向上的文本對齊方式。每個(gè)屬性中定義了各自可以使用的對齊方式的枚舉值。
Range.Borders 該屬性返回一個(gè)Borders對象,可以通過它來設(shè)置每個(gè)單元邊框的各個(gè)特性,如邊框線的線粗,樣式及顏色。
組件級的外觀和行為
許多屬性和方法會影響整個(gè)電子表格組件。表7列出了定制的解決方案中最有趣的屬性和方法。
表7影響整個(gè)電子表格的主要屬性
Property Description
Spreadsheet.DisplayColHeaders, Spreadsheet.DisplayRowHeaders 控制是否顯示行頭和列頭。這兩個(gè)屬性的缺省值是True。通常,您可以在需要使用您自己的代碼來對電子表格界面進(jìn)行完全控制時(shí)將這兩個(gè)屬性設(shè)置為False。
Spreadsheet.DisplayGridlines 控制是否顯示網(wǎng)格線。缺省是要顯示的,如果在定制解決方案中,要在需要單元分隔線的地方使用邊框,則常關(guān)閉這個(gè)屬性。
Spreadsheet.DisplayPropertyToolbox 控制是否顯示屬性工具箱。將屬性置為true則顯示,置為false就會隱藏。
Spreadsheet.DisplayTitleBar 控制是否顯示標(biāo)題欄。缺省是顯示標(biāo)題欄的?梢允褂孟旅娼榻B的TitleBar屬性來修改標(biāo)題欄上的內(nèi)容和格式。
Spreadsheet.DisplayToolbar 控制是否顯示工具條。缺省是顯示。
Spreadsheet.EnableAutoCalculate 控制電子表格模型如何重算。如果這個(gè)屬性被置為false,電子表格模型不會自動重算;必須調(diào)用工作表對象的Calculate方法,才能看到改變輸入后的新結(jié)果。在計(jì)劃修改一系列的輸入,并且希望只有在完成所有的修改后,才重算模型時(shí),這個(gè)屬性非常有用。這個(gè)屬性缺省為True――模型會在電子表格被修改時(shí)自動進(jìn)行重算。
Spreadsheet.ScreenUpdating 缺省情況下,電子表格在屏幕上的顯示總是反映最新的數(shù)據(jù),不過如果計(jì)劃執(zhí)行大量的操作,而不希望電子表格在每一個(gè)操作之后都會因?yàn)楦露W爍。可以將這個(gè)屬性置為Fasle。將這個(gè)屬性重新設(shè)回True會觸發(fā)一個(gè)徹底的重繪動作。
Spreadsheet.Selection 返回當(dāng)前選擇的對象?梢允褂肰BA或VBScript中的TypeName函數(shù)來判斷這個(gè)對象的類型。
Spreadsheet.TitleBar 使您可以訪問電子表格的標(biāo)題欄,可以改變標(biāo)題欄的文本和格式。
排序和過濾
表8 列出了在電子表格組件中排序和過濾數(shù)據(jù)時(shí)可以使用的屬性和方法。
表8 具有排序和過濾功能的屬性和方法
屬性或方法 介紹
Range.Sort 根據(jù)給定的列和排序方法對區(qū)域進(jìn)行排序。
Worksheet.AutoFilter 該屬性返回一個(gè)AutoFilter對象,該對象可用來設(shè)置當(dāng)前過濾器的細(xì)節(jié)。
AutoFilter.Filters 該屬性返回當(dāng)前自動過濾區(qū)域的過濾器集合。一個(gè)過濾器對象應(yīng)用于自動過濾區(qū)域中的一列,過濾器對象的下標(biāo)和對應(yīng)區(qū)域中列的下標(biāo)相對應(yīng)。
AutoFilter.Apply 該方法應(yīng)用一個(gè)新的自動過濾。在設(shè)置完過濾條件后,必須調(diào)用這個(gè)方法來實(shí)應(yīng)用過濾器。
Criteria.FilterFunction 該屬性控制符合過濾條件的項(xiàng)是包括在過濾器中,還是被排除在過濾器之外。如果是包含,則過濾器僅包含符合過濾條件集合的項(xiàng),而如果是排除,則過濾器包含除了哪些符合過濾條件集合的項(xiàng)之外的所有項(xiàng)。
Criteria.ShowAll 該屬性決定是否顯示所有的數(shù)據(jù)。當(dāng)設(shè)為True時(shí),該屬性重置過濾器來顯示所有的數(shù)據(jù)。當(dāng)設(shè)為False時(shí),假如沒有任何過濾條件,將不顯示任何數(shù)據(jù)。
Criteria.Add 該方法將一個(gè)新的過濾條件添加到過濾器中。
Range.AutoFilter 該方法針針對一個(gè)給定的區(qū)域打開AutoFilter開關(guān)。首先調(diào)用這個(gè)方法,然后使用Worksheet.AutoFilter屬性(如上所述)訪問過濾器并設(shè)置過濾條件。
保 護(hù)
如果需要保護(hù)電子表格的某部分,使您的用戶不能修改單元內(nèi)容或改變單元格式,您需要使用控制保護(hù)功能的各屬性。表9列出了常用的具有保護(hù)功能的屬性,并給出如何使用每一個(gè)屬性的簡短的描述。
請注意,保護(hù)設(shè)置即通過用戶界面應(yīng)用到用戶交互中,也應(yīng)用到代碼中執(zhí)行的操作中。因此如果您在一個(gè)保護(hù)選項(xiàng)被啟用的情況下需要刪除一行,您必須在執(zhí)行刪除操作前將Protection對象的Enabled屬性設(shè)置為False,并在完成操作后,將Enabled屬性設(shè)回True以便返回到受保護(hù)的狀態(tài)。
表 9 常用的具有保護(hù)功能的各屬性
屬性 描述
Worksheet.Protection 返回一個(gè)Protection對象,可以使用它設(shè)置各種保護(hù)選項(xiàng),從而啟用各種全局操作(例如:插入和刪除行)。
Protection.Enabled 控制一般情況下是否啟用保護(hù)。在需要使用保護(hù)選項(xiàng)或鎖定單元格時(shí),首先設(shè)置選項(xiàng)或者鎖定單元格,然后將這個(gè)屬性設(shè)為True。當(dāng)需要在代碼中執(zhí)行操作時(shí),可以將該屬性設(shè)為False來暫時(shí)禁止保護(hù)功能。
Protection.AllowInsertingColumns, Protection.AllowInsertingRows, Protection.AllowDeletingColumns, Protection.AllowDeletingRows 允許或禁止在電子表格中插入、刪除列或行。例如,如果AllowInsertingRows被設(shè)為False,則電子表格會禁止所有用來插入一行的命令,包括哪些編程模型中的命令。
Protection.AllowSizingAllColumns, Protection.AllowSizingAllRows 允許或禁止調(diào)整列或行的大小。例如,如果AllowSizingAllRows被設(shè)為False,電子表格就不會允許用戶調(diào)整行的大小,也不會允許您通過代碼來這樣做。
Protection.AllowSorting 允許或禁止在電子表格中排序數(shù)據(jù)。將AllowSorting設(shè)為False會禁止用戶對任何區(qū)域中的內(nèi)容進(jìn)行排序。
Protection.AllowFiltering 允許或禁止使用自動篩選功能。將這個(gè)屬性設(shè)為False會禁止用戶啟用自動過濾功能。
撤 消
表10 列出了當(dāng)您控制電子表格組件的撤消機(jī)制時(shí)會用到的有關(guān)的屬性和方法。
表 10 控制撤消機(jī)制相關(guān)的屬性和方法
屬性和方法 描述
Spreadsheet.BeginUndo 一個(gè)使您可以將一系列的操作看作一個(gè)撤消操作的方法。例如,如果您調(diào)用BeginUndo方法,然后執(zhí)行了三個(gè)不同的排序動作,或改變了許多單元,您可以一下撤消所有這些操作。
Spreadsheet.EndUndo 一個(gè)標(biāo)記您的邏輯撤消單元的結(jié)束的方法。在調(diào)用BeginUndo方法和調(diào)用EndUndo方法之間執(zhí)行的所有操作會被當(dāng)前一個(gè)單一的單元來撤消。
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開發(fā)WEB應(yīng)用03-19
Excel在教學(xué)與管理中的應(yīng)用03-21
分布式對象技術(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