專利名稱:單元格內的可擴充值類型的制作方法
單元格內的可擴充值類型
背景
電子數據表軟件應用程序可由各種不同的用戶用來操控數據。典型的電 子數據表應用程序通過按照行和列捕捉、顯示和操控數據來模擬物理數據表。 行列交匯處是單元格。電子數據表內的單元格可以包含諸如數字、字符串和 出錯的值。此外,單元格還含有能對其他單元格內的值操作并顯示結果的公 式。這些公式讓用戶能夠創(chuàng)建計算和商務邏輯以幫助他們使用數據。
然而,當今的電子數據表仍限于電子數據表能夠捕捉或操控的數據或信 息類型。例如,當前電子數據表能夠將通貨顯示為美元符號后跟數字,或者 顯示為英鎊符號后跟數字,但是不能指定如何在不同于數值的數學公式中操 控這些通貨值。于是,在對數據執(zhí)行操作時,電子數據表就無法通知用戶邏 輯上的不一致性,例如當用戶用英鎊和美元相加時。
在其它情況下,用戶希望對更復雜的數據類型執(zhí)行操作。當前只可以使 用電子數據表內的多個單元格和公式。
在另外的一組情況下,用戶希望在電子數據表內對任意數據類型執(zhí)行操 作,這些數據類型不可化簡為含有更簡單數據類型的多個單元格。在這些情
況下,電子數據表無法包含特定類型的數據,例如圖片或COM對象,從而 不能對其進行操作及由公式傳遞;電子數據表也不具備可擴充性,于是開發(fā) 人員也就不能針對這些任意值類型來創(chuàng)建新函數。
由此,電子數據表在其允許的數據類型方面只提供有限的功能性。
發(fā)明內容
提供本概述以便以簡化形式介紹將在以下的詳細描述中進一步描述的一 些概念。本概述并不旨在標識要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定要求保護的主題的范圍。
電子數據表內的單個單元格可以包含由可擴充值類型定義的可擴充值。 可擴充值類型是并入電子數據表并由電子數據表作為其他數據類型支持的用 戶定義的值類型??傊?,可擴充值類型提供了對不是由電子數據表內部定義 的類型的支持。例如,可擴充值類型可以包括但不限于矩陣可擴充值類型; 向量可擴充值類型;財務收益率曲線可擴充值類型;圖片可擴充值類型;復 數可擴充值類型;有單位數字可擴充值類型等。當可擴充值類型由用戶定義 時,用戶還可以開發(fā)對該類型進行操作的一組關聯(lián)函數。這些函數可以添加 至由電子數據表支持的基礎函數組。因此,這些函數以基本類似于電子數據 表基礎函數組的方式工作。換句話說,單元格內所包含的可擴充值可以按與 受支持基礎類型相同的方式而被作用??蓴U充值類型還可以定義如何將可擴 充值看做是內建值,使得電子數據表的基礎函數可作用于該可擴充值。
附圖簡述
圖1示出了一計算機的示例性計算體系結構;
圖2示出了與可擴充值交互的電子數據表系統(tǒng)的概觀;
圖3示出了用于將可擴充值類型及其關聯(lián)函數添加至電子數據表的過
程;
圖4示出了用于在電子數據表內使用可擴充值類型的過程;以及 圖5根據本發(fā)明的各方面示出了可擴充值的顯示、査看和編輯。
詳細描述
現在參考其中相似的數字代表相似的元素的附圖,描述本發(fā)明的各種方 面。具體地,圖1和相應的討論旨在提供對在其中可以實現本發(fā)明實施例的 合適計算環(huán)境的簡要描述。
一般而言,程序模塊包括例程、程序、組件、數據結構和其它類型的結 構,它們執(zhí)行特定的任務或者實現特定的抽象數據類型。也可使用其它計算 機系統(tǒng)配置,包括手持式設備、多處理器系統(tǒng)、基于微處理器或可編程消費電子產品、小型機、大型機等等。也可使用分布式計算環(huán)境,其中任務由通 過通信網絡鏈接的遠程處理設備執(zhí)行。在分布式計算環(huán)境中,程序模塊可被 置于本地或遠程的存儲器設備中。貫穿說明書和權利要求書,下列術語采用與此處顯式相關聯(lián)的含義,除 非該術語在其他地方另有清楚指示。術語"單元格"是在電子數據表的矩形網格線內的位置。單元格可以包 含諸如以下信息公式或文字值;由公式計算的(如果有的話)值(可以是 基礎的或可擴充的);元數據,或者單元格特性,諸如格式化單元格本身 的信息(單元格背景、邊框等);格式化單元格的值的信息(字體、粗體、 數字格式等);數據確認;和保護。術語"值"指的是由公式計算的值。值可以是位于單元格中的值,但也 可以是公式中的中間值,因此沒有關聯(lián)單元格。值可以是由電子數據表本身 定義的"基礎值",諸如數字、文本字符串、出錯值、數組;或者可以是 由用戶定義的"可擴充值"。值可以不具有與其相關聯(lián)的格式化信息。術語"MDX"指的是多維表達式(MultiDimensional expressions)語言。術語"立方體"指的是可從中檢索數據的多維OLAP數據庫。術語"成 員"是沿著立方體中一個維度的值。術語"元組"是立方體中一個或多個成員的交匯處,其中每個維度有一 個成員。元組表示包括了指定成員的立方體片。簡言之,電子數據表內的單元格可以包含可擴充值數據類型的可擴充值。 在各獨立單元格內存儲可擴充值的能力使電子數據表程序能夠以作用于受支 持基礎值相同的方式作用于可擴充值。例如,假設圖片已被定義為可擴充值 類型,于是就可將圖片值包括在一個或多個單元格內并且使用電子數據表的 基礎函數和/或創(chuàng)建用來操作圖片的函數來對其進行作用??蓴U充值的范圍可 以包括從易于包含在單元格內的值到需要大量存儲且可能無法在單元格內輕 易示出的值。易于包含在單元格內的值可以是諸如帶單位的數字、帶通貨的 數字、MDX成員等的值。可能無法在單元格內輕易包含的值可以是諸如收益 率曲線、圖片、數組、數據庫相關等的值?,F參考圖1,將描述在各實施例中利用的計算機2的示例性計算機體系 結構。圖1中示出的計算機體系結構可以按各種不同的方式配置。例如,計算機可被配置為服務器、個人計算機、移動計算機等。如圖所示,計算機2 中央處理單元5(CPU)、包括隨機存取存儲器9(RAM)和只讀存儲器(ROM) 11的系統(tǒng)存儲器7、以及將存儲器耦合至CPU 5的系統(tǒng)總線12?;据斎? 輸出系統(tǒng)包含如在啟動過程中幫助在計算機中的元件之間傳輸信息的基本例 程,并儲存在ROM 11中。計算機2還包括大容量存儲設備14,用于存儲 操作系統(tǒng)16、應用程序和其他程序模塊,這將在以下更為詳盡地描述。大容量存儲設備14通過連接至總線12的大容量存儲控制器(未示出) 與CPU 5相連接。大容量存儲設備14及其關聯(lián)計算機可讀介質為計算機2 提供非易失性存儲。雖然將在此處包含的計算機可讀介質的描述針對諸如硬 盤或CD-ROM驅動器的大容量存儲設備,但是計算機可讀介質可以是能夠由 計算機2訪問的任何可用介質。作為示例,而非限制,計算機可讀介質可以包括計算機存儲介質和通信 介質。計算機存儲介質包括易失性和非易失性、可移動和不可移動介質,它 們以任意方法或技術實現,用于存儲諸如計算機可讀指令、數據結構、程序 模塊或其它數據之類的信息。計算機存儲介質包括,但不限于,RAM、 ROM、 EPROM、 EEPROM、閃存或其它固態(tài)存儲器技術、CD-ROM、數字多功能盤(DVD)或其它光學存儲、磁帶盒、磁帶、磁盤存儲或其它磁性存儲設備、 或能用于存儲所需信息且可以由計算設備2訪問的任何其它介質。根據各實施例,計算機2可以在使用通過諸如因特網的網絡18與遠程計 算機的邏輯連接的聯(lián)網環(huán)境中操作。計算機2可以通過連接至總線12的網絡 接口單元20與網絡18相連。網絡接口單元20也可用于連接其他類型的網絡 和遠程計算機系統(tǒng)。計算機2還可以包括輸入/輸出控制器22,用于接收并處理來自諸如以下 多個設備的輸入鍵盤、鼠標、電子輸入筆等。類似地,輸入/輸出控制器22 可以為顯示屏、打印機或某些類型的設備(未示出)提供輸出。如前簡述的那樣,多個程序模塊和數據文件可以存儲在計算機2的大容量存儲設備14和RAM 9內,包括適于控制聯(lián)網計算機操作的操作系統(tǒng)16, 諸如來自微軟公司的WINDOWS XP操作系統(tǒng);UNIX; LINUX等。大容 量存儲設備14和RAM 9還可以存儲一個或多個程序模塊。更具體地,大容 量存儲設備14和RAM 9可以存儲電子數據表應用程序10,諸如MICROSOFT EXCEL電子數據表應用程序。根據一個實施例,電子數據表應用程序10用 于提供與其值被輸入電子數據表應用程序10的一個或多個單元格的可擴充值類型交互的功能性。電子數據表io被配置為操作任何可擴充值類型就好像這些可擴充值是受支持的基礎類型之一的單值一樣。電子數據表應用程序IO被配置為接收用戶輸入。例如,用戶經由圖形用 戶界面將項目數據輸入電子數據表。用戶輸入可以是單值,可擴充值、項目 值、項目元數據、函數信息、立方體函數信息或其他數據。用戶輸入可以是 由用戶鍵入、粘貼或將數據輸入電子數據表的其他預設動作創(chuàng)建的直接輸入, 或者可以是由另一程序生成的間接輸入。計算引擎26執(zhí)行與電子數據表內各單元格相關的操作。根據一個實施 例,計算引擎26是電子數據表應用程序10內的一個組件。然而,計算引擎 26也可以位于電子數據表應用程序10外部。由計算引擎26執(zhí)行的操作可以 是數學的,諸如加、除、乘和可擴充值的計算等,也可以包括其他的函數或 特征,諸如與多維數據存儲交互。計算引擎26可被配置為執(zhí)行許多不同的操 作。電子數據表應用程序10示出了包括電子數據表116的示例性電子數據表 窗口 104。電子數據表116可以通過交叉行(諸如,行7 118)和列(諸如, 列C120)來形成。交叉的行和列形成單元格,諸如單元格C7 122,而該單元 格可以通過其相應的的列和行來標識,例如,在列C 120和行7 118內的單元 格C7 122。如圖所示,電子數據表116有三列九行。然而,電子數據表116 可以包括如由滾動條124和126所表示的更多的行和列。電子數據表程序10 還包括用戶界面元素用以與可擴充值類型交互。例如,下拉菜單140示出了 用于添加(add)可擴充值(extensible value)142和編輯(edit)可擴充值144的菜 單。根據另一個實施例,用戶可以選擇諸如下拉菜單的另一個UI元素,以便從一可用的可擴充數據類型列表中選擇用于幫助填充單元格和/或公式的類型。如圖所示,電子數據表包括的單元格含有標準單元格值,諸如文本124 和136;以及可擴充值,諸如單元格A3-A5中的貨幣值(美元,American Dollars;英鎊,British Pounds)、單元格A8中的圖片值164和單元格B8中 的收益率曲線值160??蓴U充值可能無法總是能夠在電子數據表的單元格內 完整顯示。例如,包括許多值的可擴充值可能就無法在單個單元格內完整顯 示。由此,當定義可擴充值類型時,可以包括DisplayYourself()(顯示你自己) 定義,用來定義將如何在單元格內顯示該可擴充值類型。在當前的示例中, 貨幣值用其貨幣符號顯示,圖片被顯示為ICON (圖標),收益率曲線則顯示 為包括在單元格內的該收益率曲線的小型表示。除了定義如何在單元格內顯 示可擴充值之外,可擴充值定義還包括PopUpViewer()(彈出查看器)定義, 用來定義如何整體查看并編輯可擴充值。根據一個實施例,當所選的可擴充 值不是由公式計算的值時,就可以顯示用于査看并編輯可擴充值的査看器。 作為替換,當顯示的可擴充值由公式計算并且用戶編輯該可擴充值時,隨后 該可擴充值就變?yōu)橐缓愣ㄖ?。根據另一個實施例,由公式計算的任何可擴充 值都可以在査看器內查看但不被編輯。查看器可以是專門為該可擴充值開發(fā) 的自定義查看器,或者該查看器可以是對可擴充值類型進行操作的第三方產 品。例如,査看器在可擴充值是圖片的情況下可以是支持標準圖像類型的已 開發(fā)的圖形程序。類似地,當可擴充值包括XML時,查看器可以是標準的 XML編輯器。單元格是電子數據表內的顯示和容器兩者。由此,每個單元格都能夠顯 示一項目并包含該項目。在當前示例中,已經定義貨幣可擴充值類型來作用 于各種通貨,諸如英鎊和美元通貨。貨幣可擴充值類型定義連同對由該貨幣 可擴充值類型定義的貨幣值進行操作的函數28 —并存儲在數據類型表格28 內。函數和數據類型表格28還包括已由電子數據表支持的函數和數據類型, 這包括所有的標準基礎函數。根據一個實施例,標準操作符可由可擴充值類 型函數覆蓋。在當前示例中,加法"+"操作符被覆蓋以使其可用于將兩個貨 幣可擴充值相加。例如,單元格A3 128顯示項目"$5.00",這表示單元格A3 128所包含 的貨幣值。單元格A4 130顯示貨幣值"£10.00"而單元格A5顯示貨幣值 "S23.82"。單元格A4 130包括具有在該單元格內示出的表示所顯示的"£10.00" 的貨幣值的項目。與單元格A3 128和A4 130相反,單元格A5 132包括公式 項"-A3+A4",以指令電子數據表計算單元格A3內所包含的貨幣值和單元格 A4內所包含的貨幣值之和并且將結果返回并顯示在單元格A5內。如圖所示, 函數138是結合可擴充值類型定義開發(fā)的函數,它使用加法"+ "操作符將兩 個貨幣可擴充值相加以生成以美元為單位的結果。為執(zhí)行通貨的加法,無需 元數據來執(zhí)行計算和產生結果??蓴U充值是一個值而不僅是對其他單元格的 引用。在各實施例中,各單元格內的項目是由各種用戶輸入到電子數據表中 的,諸如用戶手動鍵入該值或者用戶將該值復制粘貼到單元格中。圖2根據本發(fā)明各方面示出了與可擴充值交互的電子數據表系統(tǒng)200的 概觀??蛻?06包括電子數據表應用程序208。電子數據表應用程序208包 括電子數據表單元格210。 一般地,由黑色邊框突出顯示的活動單元格212 是電子數據表內當前正被作用的單元格。例如,用戶正將可擴充值輸入單元 格。零個或者更多的電子數據表單元格可以包含己被定義的可擴充值類型的可擴充值,并且包括對該可擴充值類型進行操作的至少一個函數。可擴充值 可以按與電子數據表基礎類型相比基本上類似的方式而被作用,上述基礎類 型諸如字符串;數字;出錯等。一般而言,用戶在電子數據表208內的一個或多個單元格中輸入可擴充 值。諸如函數210的函數可以包括在一個或多個單元格內以作用于可擴充值。 例如,電子數據表208內可以包括支持一可擴充值類型的函數210。電子數 據表內包含可擴充值的單元格可以像該電子數據表內包含單值的任何其他單 元格一樣工作。可擴充值是真實的值。換句話說,無需訪問元數據來確定該 值,也無需引用另一單元格來獲取該值。電子數據表應用程序存儲并操控諸如電子數據表208的電子數據表內的 項目。在一個實施例中,電子數據表應用程序在電子數據表數據存儲222內 存儲電子數據表數據208。電子數據表數據存儲222在某些實施例中是單元格表格。計算引擎220如上所述是與電子數據表應用程序相關聯(lián)的能夠執(zhí)行操作 的組件。操作可以是數學的,諸如加、除、乘等,也可以包括其他的函數或特征,諸如MICROSOFTPIVOTTABLE (微軟數據透視表)動態(tài)視圖特征。 計算引擎220被配置為以與受支持的基礎值相同的方式處理可擴充值。由此, 就可以在函數表224內存儲與該電子數據表應用程序相關聯(lián)的每個函數。根 據一個實施例,可以在電子數據表內操控數據的各個函數都位于包括了基礎 函數在內的函數表224內。作為替換,函數可以在各存儲中分開存儲。函數 表224可以包括數據類型表,該數據類型表包括所支持數據類型列表,其中 既包括基礎數據類型又包括定義的可擴充數據類型。如圖所示,系統(tǒng)200還可以包括耦合至客戶206的服務器202。除了其 他使用,服務器202尤其可被配置為存儲多維數據庫。諸如OLAP數據庫。 在電子數據表應用程序和OLAP數據庫204之間的通信可以使用MDX完成。 服務器202也可被配置為存儲與包含在電子數據表內的一個或多個可擴充值 相關聯(lián)的其他數據。圖3和4示出了與單元格內的可擴充值類型相交互的過程。當閱讀對在此提供的例程的討論時,應當了解,各種實施例的邏輯操作 是作為(l)運行于計算機系統(tǒng)上的一系列計算機實現的動作或程序模塊,以及/ 或者(2)計算機系統(tǒng)內互連的機器邏輯電路或電路模塊來實現的。該實現是取 決于實現本發(fā)明的計算機系統(tǒng)的性能要求來選擇的。因此,所例示的并且構 成在此所述的實施例的邏輯操作被不同地表示為操作、結構性設備、動作或 模塊。這些操作、結構性設備、動作和模塊可用軟件、固件、專用數字邏輯 以及它們的任何組合來實現。圖3示出了用于將可擴充值類型及其關聯(lián)函數添加至電子數據表的過程。在開始操作之后,該過程移至操作310,其中定義了可擴充值類型???擴充值類型可以是未受包括在電子數據表應用程序的基礎類型支持的幾乎任 何值類型。例如,經濟學家或者財務顧問可以定義關于收益率曲線的可擴充值類型以及對收益率曲線(收益率曲線數據類型的值)執(zhí)行操作的函數。數 學家可以定義關于復數、矩陣、向量等的可擴充值類型,并且擴充電子數據 表的數學函數以對這些新的數據類型進行正確操作。銀行家可以定義用于不 同貨幣單位(參見上述示例)的可擴充值類型。圖形程序員可以定義圖片數據類型以及用于對圖片執(zhí)行操作的函數。程序員可以定義與XML —并工作的 可擴充值類型XML節(jié)點、XML數的一部分、或者X路徑查詢(XPath Query) 語句以及對這些進行的操作??蓴U充值類型還可被定義與OLAP立方體數據 一并工作。例如,可擴充值類型可以被定義用于MDX成員、KPI指示符、元 組、集合等。也可以定義許多其他的值類型。可以看出可擴充值類型的可能 列表是無限的。移至操作320,開發(fā)函數以操控該可擴充值類型的可擴充值。操控可擴 充值的函數可以用許多不同的編程語言來開發(fā)。例如,可以使用Visual Basic、 C或C^來開發(fā)函數。 一般而言,可以開發(fā)任何數量的函數來與可擴充值交互。 根據一個實施例,函數可以覆蓋基礎操作符,諸如+、 -、 /、 *和&操作符,使 得可擴充值能夠利用這些操作符。例如,加"+ "操作符可被覆蓋用以將兩個 或多個可擴充值相加。另一個示例可以是覆蓋減"-"操作符用以從一個可擴 充值中減去另一個可擴充值。例如,假設定義一可擴充值類型來操控復數??杀欢x用來操控復數可 擴充值的函數之一可以是加法操作,諸如(3+2i) + (4-li)的結果是(7+i)。類 似地,假設定義一可擴充值類型用以帶單位的數字,使得3111/8*53將得到結 果15m??梢钥闯?,可擴充值是一個值,并且可以是中間子公式的結果,而 根本不與單元格相關聯(lián)。表示電子數據表內的值可以通過被稱為OPER的數據結構來表示。以下 是可以包括可擴充值數據類型的OPER的一個示例性表示 struct { tag: {Error, Number, Text},value: union {…出錯值表示…, ...數字表示..., ..文本表示},extensibleValue: * Extensible Value } OPER根據一個實施例,前兩個字段是支持基礎類型的字段。第三個字段 "extensibleValue (可擴充值)"對所有常規(guī)基礎值而言為空。但是對于可擴 充值,ExtensibleValue字段指向extensibleValue對象,根據一個實施例其支 持以下接口 DisplayYourself();PopUpViewer();禾B GetValue()(獲取值)。 DisplayYourself()方法定義了如何在單元格內顯示可擴充值。PopUpViewer() 方法定義了在完全顯示時如何顯示和編輯可擴充值。GetValue()方法返回可 由不理解該可擴充值類型的電子數據表函數使用的OPER。數值可由{Number, 3}表示,而弁DIV0可由{Error, 7}表示,其中7是被零 除的內部代碼。計算鏈處理各OPER。例如,考慮公式=SQRT(A1/A2)。計算引擎首 先計算A1和A2。 Al和A2現在具有各自由OPER表示的最新值。計算引擎 獲取這兩個OPER并將他們相除以生成表示該結果的新OPER。所得的OPER 取決于是否發(fā)生被零除可以是出錯值OPER或數字OPER。隨后將該OPER 傳遞給SQRT,該SQRT構造一個新的OPER作為其結果。考慮一個涉及可擴充類型的示例。假設MDX成員是期望被添加的新可 擴充值類型之一。為此,存在一個類對象MDX_Member,即ExtensibleValue 的一個子類。該類具有用于該成員標題和唯一 MDX名的專用字段。 MDX—Membe類的GetValue方法返回Text OPER,其"值"字段設置為MDX 成員的標題,而extensibleValue字段設置為!^nyj^Member對象。以此方式, 現有的電子數據表函數只看見Text OPER,但是任何知曉MDX的函數可以在 extensibleValue字段內看見該MDX—Member對象。ExtensibleValue對象*是* 該值;OPER包裝僅高速緩存返回該值的函數的結果,諸如對該值的GetValue 調用。移至操作330,定義可擴充值類型的顯示特征。顯示特征定義了可擴充 值應該如何在單元格內顯示以及可擴充值如何被査看和編輯。根據一個實施 例,開發(fā)者定義可擴充值如何在單元格內顯示其本身(DisplayYourself())以 及可擴充值如何被查看編輯(PopUpViewer())。例如,對于圖片可擴充值,Display Yourself()定義可以指定在單元格內顯示該圖片的圖標。PopUpViewer() 定義指定可擴充值如何被查看和編輯。根據一個實施例,當用戶選擇單元格 內的可擴充值表示時,向用戶顯示由P叩UpViewer()定義所定義的查看器。對 于許多可擴充值,諸如標準圖像類型,查看器和編輯器輕易可用以用于與包 含在一個或多個單元格內的可擴充值交互。 一般而言,可擴充值的顯示留給 開發(fā)者(參見圖5和相關討論)。行進至操作340,定義可以包括可擴充值應該如何由受電子數據表支持 的基礎公式處理。如前所述,可擴充值可被包括在不理解該可擴充值且僅對 受支持的基礎值進行操作的公式內。例如,假設Sum (求和)公式中包括可 擴充值(MyList),諸如=Sum(Filter(MyList,...);其中MyList (我的列表) 是新的List (列表)值,Filter (過濾器)消費MyList以生成新的(更小的) 列表作為其結果。"舊的"函數Sum期望接收數組值類型作為其自變量,但 給出的是List值類型根據一個實施例,只要函數或公式接收到不是它期望的 值,自變量就"向下強制轉換"至它期望的值類型。在當前的示例中,MyList 值強制轉換為數組類型。在此情況下,MyList值類型的定義包括將列表值類 型強制轉換為數組類型的操作。另舉一例,假設單個單元格,諸如A3包含可擴充MDX成員值,諸如 =A3 & "Wubble"。受支持的基礎字符串拼接操作"&"期望其自變量是字符 串。然而在此示例中,A3的值是可擴充MDX成員值類型。如果&操作符沒 有被MDX成員可擴充定義覆蓋,這該MDX成員值就被向下強制轉換成依據 受支持定義的字符串。例如,定義可以陳述何時期望字符串返回MDX成員 名。根據一個實施例,向下強制轉換提早進行,使得不知道該可擴充值的任 何函數都能夠看見受支持的值,并且可以在操作中使用該值。以此方式,基 礎函數繼續(xù)以某種方式工作。根據另一個實施例,向下強制轉換不提早進行。 在此情況下,計算引擎可以在它調用基礎函數的前一刻進行向下強制轉換。在操作350處,可擴充值類型的定義及其支持的函數被加入電子數據表 應用程序。該函數可被包括在應用程序內,從而能夠像對基礎函數那樣的方式對其進行訪問。根據一個實施例,定義可被加入一表格并在調用時被訪問。轉換至操作360,電子數據表提供對可擴充值類型及其支持函數的訪問。以此方式,任何用戶都可以與包括文本字符串、數字等相同的方式在他們的 電子數據表內包括受支持的可擴充值數據類型。 隨后該進程移至結束框并返回以處理其它動作。圖4根據本發(fā)明各方面顯示在電子數據表內使用可擴充值類型的過程。 在開始操作之后,過程行進至定義操作410,其中在電子數據表的單元格內 包括至少一個可擴充數據值??蓴U充值根據包括有可擴充值類型定義的 Display Yourself()定義來顯示。移至操作420,電子數據表內的至少一個公式包括可擴充值作為它的一 個參數。公式可以調用已經為該可擴充值數據類型專門開發(fā)的函數,和/或公 式可以調用期望不同值類型的函數。為了讓不理解可擴充值數據類型的公式 生成結果,提供定義以將該可擴充值數據類型強制轉換成該函數支持的數據 類型之一。行進至操作430,訪問包括一個或多個可擴充值的函數。根據一個實施 例,該函數位于函數表內。移至操作440,求值該電子數據表。該電子數據表的求值是基于其內的 函數以及包含在各單元格內值而進行的。以此方式,包含可擴充值的每一單 元格都可由函數進行合適作用。在操作450,可將查詢及所執(zhí)行的任何計算的結果向用戶顯示。在單元 格包含可擴充值的情況下,該顯示可由可擴充值的DisplayYoursdf()方法執(zhí) 行,于是就完全處于開發(fā)該可擴充類型的用戶的控制之下。隨后該進程移至 結束框并返回以處理其它動作。圖5示出了可擴充值的顯示、査看和編輯。因為可在電子數據表內定義 和利用的可擴充值數量是無限的,所以圖5中示出的可擴充值僅出于示例性 目的而非作為限制。電子數據表的單元格B4示出了關于收益率曲線的可擴充值。收益率曲 線可擴充值的顯示已由DisplayYourself()方法定義,從而示出了更大的收益率曲線的圖標顯示。當選擇單元格B4時,彈出的查看器顯示收益率曲線510。 一旦顯示收益率曲線510,用戶可以按需操控該收益率曲線。電子數據表的單元格Al示出了關于圖片的可擴充值。在此示例中,圖 片可擴充值在單元格內顯示為圖片的文本描述。當選擇單元格A1時,將圖片 520顯示給用戶。電子數據表的單元格Cl示出了關于復數值的可擴充值。復數值可擴充 值的顯示已由DisplayYourself()方法定義,從而示出了該復數值。當選擇單元 格Cl時,彈出的査看器顯示該復數值530。作為替換,DisplayYourself()和 P叩UpViewer()定義可以使用標準電子數據表查看器進行操控和操控。在此情 況下,可以通過簡單地在單元格處鍵入文本來操控該復數值。電子數據表的單元格E4示出了與數組有關的可擴充值。數組可擴充值 的顯示已由DisplayYoursdf()方法定義,從而示出了該可擴充值是數組的事實 以及該數組的代表值。在此示例中,開發(fā)者將代表值定義為求和或者包含在 該數組內的各值。當選擇單元格E4時,彈出的查看器顯示數組540。 一旦數 組540被顯示,用戶可以按需操控該數組。從該示例中可以看出,可擴充值可以在單元格內以各種不同的方式顯示, 并且可以使用各種方法來對其進行查看和編輯。定義可擴充值類型的開發(fā)者 可以確定在單元格內表示該可擴充值的最佳方式,以及査看并編輯該可擴充 值的最佳方式。以上說明、示例和數據提供了對本發(fā)明成分的制造和使用的全面描述。 因為可以在不背離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實施例, 所以本發(fā)明落在所附權利要求的范圍內。
權利要求
1.一種用于對可擴充值進行操作的計算機實現方法,包括從電子數據表的單元格獲取可擴充值;其中所述可擴充值是可擴充值數據類型之一;以及執(zhí)行涉及所述可擴充值的操作;其中所述可擴充值以類似于基礎值的方式被處理。
2. 如權利要求1所述的計算機實現方法,其特征在于,還包括在所述可 擴充值被選擇時在査看器內顯示所述可擴充值;其中所述査看器可用于査看和 編輯所述可擴充值。
3. 如權利要求1所述的計算機實現方法,其特征在于,執(zhí)行涉及所述可 擴充值的操作包括在所述可擴充值不受所述操作支持時將所述可擴充值強制 轉換成受支持的基礎類型。
4. 如權利要求3所述的計算機實現方法,其特征在于,強制轉換所述可 擴充值包括將所述可擴充值強制轉換成以下各項之一字符串類型;出錯類型; 和數字類型。
5. 如權利要求3所述的計算機實現方法,其特征在于,強制轉換所述可 擴充值包括在所述操作被請求執(zhí)行之前強制轉換所述可擴充值。
6. 如權利要求1所述的計算機實現方法,其特征在于,還包括從由操作 符定義的對象訪問所述可擴充值。
7. 如權利要求2所述的計算機實現方法,其特征在于,所述可擴充值提 供關聯(lián)函數以及關于所述可擴充值在被不理解所述可擴充值的函數消費時如 何工作的行為。
8. 如權利要求1所述的計算機實現方法,其特征在于,還包括連接至多 維數據庫并從所述多維數據庫獲取有關所述可擴充值的數據。
9. 如權利要求1所述的計算機實現方法,其特征在于,還包括提供針對 所述可擴充值數據類型的顯示定義。
10. —種具有用以與電子數據表內的可擴充值交互的計算機可執(zhí)行指令 的計算機可讀介質,包括定義可擴充值數據類型;在所述電子數據表的單元格內包括由所述可擴充值數據類型定義的可擴充值;執(zhí)行涉及所述可擴充值的操作;其中所述操作由以下各項中的至少之一執(zhí) 行基礎函數以及被定義對所述可擴充值數據類型進行操作的函數。
11. 如權利要求10所述的計算機可讀介質,其特征在于,定義所述可擴 充值包括定義使用所述可擴充值執(zhí)行至少一個操作的函數列表。
12. 如權利要求11所述的計算機可讀介質,其特征在于,定義所述可擴 充值包括在執(zhí)行的所述操作不理解所述可擴充值時定義針對所述可擴充值的 行動。
13. 如權利要求11所述的計算機可讀介質,其特征在于,還包括定義在 單元格內顯示所述可擴充值的方式;以及定義用于查看和編輯所述可擴充值的 查看器。
14. 如權利要求10所述的計算機可讀介質,其特征在于,執(zhí)行涉及所述 可擴充值的操作包括將所述可擴充值強制轉換成另一個值類型。
15. 如權利要求12所述的計算機可讀介質,其特征在于,強制轉換所述 可擴充值包括在所述操作被請求執(zhí)行之前將所述可擴充值強制轉換成以下各 項之一字符串類型;出錯類型;和數字類型。
16. —種與來自電子數據表的可擴充值交互的系統(tǒng),包括 處理器,被配置用于執(zhí)行操作;電子數據表應用程序,被耦合至網絡并被配置為執(zhí)行以下各項步驟,所述 步驟包括在所述電子數據表的單元格內包括可擴充值;以及在所述處理器上執(zhí)行涉及所述可擴充值的操作;其中所述可擴充值可由基 礎電子數據表操作消費。
17. 如權利要求16所述的系統(tǒng),其特征在于,所述電子數據表應用程序 還被配置為確定一組函數以使用所述可擴充值執(zhí)行至少一個操作。
18. 如權利要求17所述的系統(tǒng),其特征在于,所述電子數據表應用程序 還被配置為響應于所述基礎電子數據表函數所期待的類型而將所述可擴充值強制轉換成另一類型。
19. 如權利要求17所述的系統(tǒng),其特征在于,還包括一顯示;其中所述 顯示被配置為根據顯示定義而在單元格內顯示所述可擴充值的表示并且在查 看器內顯示所述可擴充值以使得所述可擴充值能被完整地查看和編輯。
20. 如權利要求17所述的系統(tǒng),其特征在于,強制轉換所述可擴充值包 括在所述操作被請求執(zhí)行之前將所述可擴充值強制轉換成以下各項之一字符 串類型;出錯類型;和數字類型。
全文摘要
電子數據表內的獨立單元格可以包含由可擴展值類型定義的可擴展值。可擴充值類型是作為受支持數據類型被加入電子數據表的用戶定義值類型。總之,可擴展值類型提供對未被電子數據表內部定義的類型的支持。當可擴充值類型被定義時,開發(fā)一組關聯(lián)函數以對該類型進行操作。這些函數可以添加至由電子數據表支持的基礎函數組。因此,這些函數以基本類似于電子數據表基礎函數組的方式工作。單元格內所包含的可擴展值可以按與受支持基礎類型相同的方式而被作用。
文檔編號G06F17/21GK101326490SQ200680046424
公開日2008年12月17日 申請日期2006年12月5日 優(yōu)先權日2005年12月9日
發(fā)明者C·D·艾力斯, M·J·安德羅斯奇, R·G·霍金, S·P·瓊斯 申請人:微軟公司