TWI423050B - 用於儲存格的可擴充值型態的電腦實施方法、電腦可讀取儲存媒體和系統 - Google Patents

用於儲存格的可擴充值型態的電腦實施方法、電腦可讀取儲存媒體和系統 Download PDF

Info

Publication number
TWI423050B
TWI423050B TW095141406A TW95141406A TWI423050B TW I423050 B TWI423050 B TW I423050B TW 095141406 A TW095141406 A TW 095141406A TW 95141406 A TW95141406 A TW 95141406A TW I423050 B TWI423050 B TW I423050B
Authority
TW
Taiwan
Prior art keywords
value
expandable
expandable value
extensible
type
Prior art date
Application number
TW095141406A
Other languages
English (en)
Other versions
TW200741489A (en
Inventor
Charles D Ellis
Matthew J Androski
Robert G Hawking
Simon Peyton Jones
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW200741489A publication Critical patent/TW200741489A/zh
Application granted granted Critical
Publication of TWI423050B publication Critical patent/TWI423050B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Document Processing Apparatus (AREA)
  • User Interface Of Digital Computer (AREA)

Description

用於儲存格的可擴充值型態的電腦實施方法、電腦可讀取儲存媒體和系統
本發明係相關於試算表軟體應用程式。
許多不同使用者運用試算表軟體應用程式來操縱資料,典型試算表應用程式利用捕捉、顯示與操縱以列和行方式配置的資料來模擬實際的試算表。在行與列的交叉點上就是儲存格。試算表內的儲存格可包含值,像是數字、字串以及錯誤。更進一步,儲存格也可內含可運算其他儲存格內值的公式並顯示結果。這些公式讓使用者有權限建立幫助使用者運用資料的計算與業務邏輯。
不過,現今的試算表受限於試算表可以擷取或操縱的資料或資訊型態(type)。例如:試算表可用錢字號或英鎊符號接著數字來顯示貨幣,但是無法在算數公式中指定如何以不同於數值的方式來操縱貨幣值。如此當執行資料的運作時,試算表並不會通知使用者有邏輯上的不一致,例如當使用者新增英鎊至美金時。
在其他的狀況下,使用者要在更複雜的使用者資料型態上執行運算。目前這只有使用試算表內的多重儲存格以及公式才能辦到。
尚有其他的狀況,使用者想要在專屬資料型態的試算表內執行運算並無法減少包含更簡單資料型態的多重儲存格。在這些情況下,試算表缺乏內含特定資料型態的方式, 例如圖形或COM物件,如此就可在公式上運算並通過,並且缺乏擴充性,如此開發者可建立新功能來在這些專屬值型態上運算。
如此,試算表只能在其允許的資料型態上提供有限的功能。
本發明內容用於導入簡單形式中概念的選擇,在底下實施方式中有進一步說明。本發明內容並不在於說明所主張主題的關鍵特色或基本特色,也不在於用來幫助決定所主張主題的範圍。
試算表(spreadsheet)內的獨立儲存格(cell)可內含由可擴充值型態(extensible value type)所定義的可擴充值。該可擴充值型態為併入試算表內並由試算表當成其他資料型態來支援的使用者定義值型態。一般而言,擴充資料型態提供支援試算表內部未定義的型態。例如可擴充值型態可包含,但不受限於:矩陣可擴充值型態、向量可擴充值型態、財務產量曲線可擴充值型態、圖形可擴充值型態、複數可擴充值型態、含單位數可擴充值型態等等。當可擴充值型態由使用者定義,則關聯函數集也由運算該型態的使用者所發展。這些函數會加入試算表所支援的基本函數集。因此,函數的行為實質上類似於基本試算表函數集(set of functions)。換言之,包含在儲存格內的可擴充值之作用與所支援的基本型態之作用。可擴充值型態也可定義可 擴充值如何當成內建值,如此基本試算表功能就可作為可擴充值。
此刻請參閱圖式,其中相同的編號代表相同的元件,將說明本發明許多態樣。尤其是,第1圖及其對應討論用於提供其中可實施本發明具體實施例中的合適計算環境之簡要、一般說明。
一般而言,程式模組包含常式(routine)、程式、組件(component)、資料結構以及執行特定工作或實施特定抽象資料型態的其他結構型態。也可使用其他電腦系統組態,包含手持裝置、多處理器系統、微處理器或可程式消費型電子產品、迷你電腦、主機電腦等等。也可使用分散式計算環境,其中工作由透過通訊網路鏈結的遠端處理裝置所執行。在分散式計算環境中,程式模組可位於本機或遠端記憶體儲存裝置內。
在整個說明書與申請專利範圍內,除非範圍明確要求,否則下列詞彙明確闡述內容意義。
「儲存格」一詞為試算表內矩形方格內的位置。儲存格可包含下列資訊:公式(formula)或文字值(literal value)、由公式(或有)計算的值(基本或擴充)、元資料或儲存格特性,像是:將儲存格本身格式化的資訊(儲存格背景、格線等等)、將儲存格的值格式化之資訊(字型、粗體、數字格式等等)、資料驗證以及保護。
「值」一詞就是公式所計算的值。一值在儲存格內為現用,但也可為公式內的中間值,因此無相關聯的儲存格。一值可為試算表本身所定義的「基本值(base value)」,像是:數字、文字字串、錯誤值、陣列或可為使用者定義的「可擴充值」。一值並不具有與之關聯的格式化資訊。
「MDX」一字就是多維式運算式語言(MultiDimensional eXpressions language)。
「cube」一字就是可從其中擷取資料的多維式(multi-dimensional)OLAP資料庫。「member」一字就是搭配cube維度之一的值。
「tuple」一字為cube內一或多個member的交集處(intersection),只具有來自每一維度的一個member。tuple代表包含特定member的cube一部分。
簡單來說,試算表內的儲存格可內含可擴充值資料型態的可擴充值。將可擴充值儲存在獨立儲存格內的能力可讓試算表程式以和所支援基本值作用相同的方式作用在可擴充值上。例如:假設圖片已經定義為可擴充值型態,則圖片值可包含在一或多個儲存格內,並且使用基本試算表函數以及/或已建立來在圖片上運算的函數來作用。可擴充值的大小範圍從可輕易包含在儲存格內的值到需要大量儲存體並且無法輕易顯示在儲存格內的值。輕易包含在儲存格內的值可為像是含單位之數值、貨幣數值、MDX member等等。無法輕易包含在儲存格內的值可為像是產量曲線、圖片、陣列、資料庫關聯等等。
此時請參閱第1圖,將說明用於許多具體實施例內電腦2的範例電腦架構。第1圖內顯示的電腦架構可用許多不同的方式設置。例如:電腦可設置成伺服器、個人電腦、行動電腦等等。如所示,電腦2包含一中央處理單元5("CPU")、一系統記憶體7,其中包含一隨機存取記憶體9("RAM")和一唯讀記憶體("ROM")11,以及一系統匯流排12,其將該記憶體耦合至該CPU 5。一基本輸入/輸出系統包含有助於在電腦內元件之間(像是啟動時)傳輸資訊的基本常式,其儲存在ROM 11內。電腦2進一步包含一大量儲存裝置14,用於儲存一作業系統16、應用程式以及其他程式模組,稍後將會有詳細說明。
大量儲存裝置14透過一連結至匯流排12的大量儲存控制器(未顯示),來連結至CPU 5。大量儲存裝置14及其伴隨的電腦可讀取媒體提供非揮發性儲存空間給電腦2。雖然此處所含的電腦可讀取媒體說明就是大量儲存裝置,像是硬碟或CD-ROM光碟機,電腦可讀取媒體可為電腦2可存取的任何可用媒體。
藉由範例並且不受限於此範例,電腦可讀取的媒體可包含電腦儲存媒體以及通訊媒體。用來儲存資訊的電腦儲存媒體包含在任何方法或技術內實施的揮發與非揮發性、可移除與不可移除媒體,用於儲存像是電腦可讀取指令、資料結構、程式模組或其他資料等等資訊。電腦除儲存媒體包括但不受限於RAM、ROM、EPROM、EEPROM、快閃記憶體或其他固態記憶體技術、CD-ROM、數位多用途光 碟("DVD")或其他光學碟片儲存、磁帶、磁匣、磁片儲存或其他磁性儲存裝置,或其他任何可用於儲存所要資訊並且可由電腦2存取的媒體。
根據許多具體實施例,電腦2可透過網路18,像是網際網路,運用邏輯連結至遠端電腦,而在網路環境內操作。電腦2可透過與匯流排12相連的網路介面單元20連結至網路18。網路介面單元20也可用於連結至其他種網路與遠端電腦系統。
電腦2也包含一輸入/輸出控制器22,用於接收並處理來自許多裝置的輸入,像是:鍵盤、滑鼠、電子觸控筆等等。類似地,輸入/輸出控制器22可提供輸出至顯示螢幕、印表機或其他種輸出裝置(未顯示)。
如上面簡單提及的,許多程式模組與資料檔案可儲存在電腦2的大量儲存裝置14與RAM 9內,包含適合用於控制網路電腦操作的作業系統16,像是:Microsoft Corporation所推出之WINDOWS XP作業系統、UNIX、LINUX等等。該大量儲存裝置14和RAM 9也可儲存一或多個程式模組。尤其是,大量儲存裝置14和RAM 9可儲存試算表應用程式10,像是MICROSOFT EXCEL試算表應用程式。根據一個具體實施例,試算表應用程式10可操作來提供與可擴充值型態互動的功能,其中可擴充值為輸入試算表應用程式10中一或多個儲存格內的值。試算表10設置成若可擴充值為所支援的基本型態之單一值,則可在任何可擴充值上運算。
試算表應用程式10設置成接收使用者輸入。例如:使用者透過圖形使用者介面將項目資料輸入試算表內。使用者輸入可為單一值、可擴充值、項目資料、項目元資料、函數資訊、cube函數資訊或其他資料。使用者輸入可為使用者打字、貼上或其他將資料輸入試算表所建立的直接輸入,或由其他程式所產生的間接輸入。
計算引擎26執行關於試算表內儲存格的運算。根據一個具體實施例,計算引擎26為試算表應用程式10內的一個元件。不過,計算引擎26可位於試算表應用程式10之外。計算引擎26所執行的操作可為數學運算,像是加、除、乘、在可擴充值上的計算等等,或可包含其他函數或功能,像是與多維式資料儲存互動。計算引擎26可設置成執行許多不同運算。
試算表應用程式10顯示包含試算表116的範例試算表視窗104。試算表116由交叉的列和行所形成,像是列7 118和行C 120。交叉的列與行形成儲存格,像是儲存格C7 122,其由儲存格對應的行與列所定義,例如儲存格C7 122為行C 120和列7 118所組成。如所示,試算表116具有三行與九列。不過,試算表116可包含更多列與行,如同捲軸124和126所呈現。試算表程式10也可包含使用者介面元素來與可擴充值型態互動。例如:下拉式選單功能表140顯示新增可擴充值142以及編輯可擴充值144的功能表。根據其他具體實施例,使用者可選擇其他UI元素(element),像是下拉式選單(dropdown),從可用的可擴充 資料型態之串列(list)中作選擇,以協助填入(populate)儲存格以及/或公式。如所示,試算表包含許多儲存格,其內含標準儲存格值,像是文字134和136,以及可擴充值,像是儲存格A3-A5內的貨幣值、儲存格A8內的圖形值164以及儲存格B8內的產量曲線值160。可擴充值並不一定會完整顯示在試算表的儲存格內。例如:包含許多值的任何可擴充值並不會完整顯示在單一儲存格內。如此,當已定義可擴充值型態,則包含定義如何在儲存格內顯示可擴充值型態的DisplayYourself( )定義。在本範例中,貨幣值會用其貨幣符號顯示,圖片顯示成圖示並且產量曲線由儲存格內包含的產量曲線小圖所呈現。除了定義如何在儲存格內顯示可擴充值以外,可擴充值定義也包含PopUpViewer( )定義,其定義如何完整檢視與編輯可擴充值。根據一個具體實施例,當選擇一值並非由公式計算的可擴充值,則顯示可用於檢視與編輯可擴充值的檢視器。另外,當顯示的可擴充值由公式計算並且使用者編輯該可擴充值,則該可擴充值變成常數值(constant value)。根據其他具體實施例,由公式計算的任何可擴充值都可在檢視器內檢視,但不編輯。檢視器可為特別發展用於可擴充值的自訂檢視器,或為協力廠商產品可在可擴充值型態上運算的檢視器。例如:檢視器可為當可擴充值為圖形時支援標準影像型態的已開發圖形程式。類似地,當可擴充值內含XML,則檢視器可為標準XML編輯程式。
儲存格同時為試算表內的顯示器與容器。如此,每個 儲存格都可顯示項目並且內含該項目。在本範例中,貨幣可擴充值型態定義成可在許多貨幣上作用,例如英鎊與美金。貨幣可擴充值型態定義儲存在資料型態表28內,搭配由該貨幣可擴充值型態所定義在該貨幣值上運算之函數28。函數與資料型態表28也可包含試算表已經支援的函數與資料型態,包含所有標準基本函數。根據一個具體實施例,可擴充值型態函數可推翻標準運算子。在本範例中,加號"+"運算子被推翻,所以其可用來新增兩貨幣可擴充值。
例如:儲存格A3 128顯示項目"$5.00",代表儲存格A3 128內含的貨幣值。儲存格A4 130顯示貨幣值"£10.00",並且儲存格A5顯示貨幣值"$23.82"。儲存格A4 130包含具有代表儲存格內所示"£10.00"的貨幣值之項目。相較於儲存格A3 128和A4 130,儲存格A5 132包含為公式"=A3+A4"的項目,這指示試算表計算儲存格A3內含貨幣值與儲存格A4內含貨幣值的總合,然後傳回並將結果顯示在儲存格A5內。如所見,與可擴充值型態定義一起發展的函數138使用加號"+"運算子加入兩個貨幣可擴充值,來產生美元結果。為了執行貨幣加法,並不需要元資料來執行計算並產生結果。可擴充值為一種值,並且不僅只是其他儲存格的參考。在具體實施例內,儲存格內的項目從許多使用者輸入進入試算表,像是使用者手動打入數值或使用者將值複製與貼上儲存格。
第2圖說明根據本發明態樣與可擴充值互動的試算表 系統200之簡介。用戶端206包含試算表應用程式208,試算表應用程式208包含試算表儲存格210。一般而言,用暗色邊框突顯出來的現用儲存格212為試算表內目前正在作用的儲存格。例如:使用者將可擴充值輸入儲存格。零或多個試算表儲存格可包含已經定義的可擴充值型態之可擴充值,並包含至少一個函數來在該可擴充值型態上運算。可擴充值的作用方式類似於試算表基本型態的作用方式,這些型態像是:字串、數值、錯誤等等。
一般而言,使用者可在試算表208的一或多個儲存格內輸入可擴充值。像是函數210的函數可包含在一或多個儲存格內作用在可擴充值上。例如:試算表208內可包含支援可擴充值型態的函數210。試算表內包含可擴充值的儲存格就像是試算表內包含單一值的儲存格。可擴充值為真值(true value)。換言之,並不需要存取元資料(metadata)來決定該值,也不需要參考其他儲存格來獲得該值。
試算表應用程式儲存並操縱試算表,像是試算表208內的項目。在一個具體實施例內,試算表應用程式將試算表資料208儲存在試算表資料儲存體222內。在某些具體實施例內,試算表資料儲存體222為儲存格表。
如上述,計算引擎220為與可執行運算的試算表應用程式相關連的組件。這些操作可為數學運算,像是加、除、乘等等,或可包含其他函數或功能,像是MICROSOFT PIVOTTABLE動態檢視功能。計算引擎220設置成以和所支援基本值相同方式處理可擴充值。如此,與試算表應用 程式相關聯的每個函數可儲存在函數表224內。根據一個具體實施例,可操縱試算表內資料的每一函數都位於包含基本函數的函數表224內。另外,函數可分開在許多儲存體內。函數表224也可包含其中包含所支援資料型態的資料型態表,所支援的資料型態包含基本資料型態與定義的可擴充資料型態。
如所示,系統200也可包含與用戶端206耦合的伺服器202。在其他使用之間,伺服器202可設置成儲存多維式資料庫,像是OLAP資料庫。試算表應用程式與OLAP資料庫204之間的通訊可運用MDX達成。伺服器202也可設置成儲存與試算表內含的一或多個可擴充值之其他資料。
第3圖和第4圖說明與儲存格內可擴充值型態互動的處理。
當閱讀此處呈現的常式討論時,吾人應該瞭解到許多具體實施例的邏輯操作實施(1)為在計算系統上執行的電腦程式模組實施步驟順序以及/或(2)為計算系統內的互連機器模組。此實施取決於實施本發明的計算系統之效能需求。因此,所說明並構成此處所說明具體實施例的邏輯操作可稱為操作、結構裝置、動作或模組。這些操作、結構裝置、動作與模組可在軟體、韌體、特定用途數位邏輯以及這些任意組合之內實施。
第3圖顯示將可擴充值型態與關聯函數加入試算表的處理。
在開始操作之後,處理流程前往操作310,其中定義可擴充值型態。可擴充值型態可為試算表應用程式內含的基本型態已經不支援之任何值型態。例如:經濟學家或財務顧問可定義用於產量曲線的可擴充值型態,以及在產量曲線上執行運算的函數(產量曲線資料型態之值)。數學家可定義用於複數、矩陣、向量等等的可擴充值型態,並擴充試算表的數學函數以便在這些新資料型態上正確運算。銀行家可定義用於不同貨幣單位的可擴充值型態(請參閱上面的範例)。圖形程式設計師可定義用於在圖形上執行操作的圖形資料型態與函數。程式設計師可定義可擴充值型態來運用XML:XLM節點、部分XML樹狀或XPath Query陳述式,以及在這些上運作的操作。可擴充值型態也可定義成運用OLAP cube資料。例如:可擴充值型態可定義用於MDX member、KPI indicator、tuple、set等等。也可定義許多其他值型態。如所見,可擴充值型態的可能串列並不受限。
前往操作320,發展函數來操縱該可擴充值資料型態的可擴充值。操縱可擴充值的函數可運用許多不同的程式語言來開發。例如:Visual Basic、C或C#可用於開發函數。一般而言,可開發任何數量的函數與可擴充值互動。根據一個具體實施例,該函數可推翻基本運算子,像是+、-、/、*和&運算子,如此可擴充值可運用這些運算子。例如:可推翻加號"+"運算子來新增兩或多個可擴充值。其他範例可推翻減號"-"運算子,如此可從其他可擴充值減去一 個可擴充值。
例如:假設已經定義可擴充值型態來操縱複數。可定義乘操縱複數可擴充值的函數之一應為加法運算,像是:(3+2i)+(4-1i),得到結果為(7+i)。類似地,假設可擴充值型態已經定義用於含單位的數,如此3m/s * 5s應得到結果15m。如上面所見,可擴充值為一值,並且可為中間子公式(sub-formula)的結果,不與儲存格相關聯。
若要呈現試算表內一值可由稱為OPER的資料結構來呈現。下列為可包含可擴充值型態的OPER之範例代表: struct {tag: {Error, Number, Text}, value: union { ...error value representation..., ...number representation..., ..text representation}, extensibleValue: *ExtensibleValue } OPER
根據一個具體實施例,頭兩欄位為支援基本型態的欄位。第三欄位「可擴充值」為空,用於全部原始基本值。但是對於可擴充值而言,可擴充值欄位指向ExtensibleValue物件,其根據一個具體實施例支援下列介面:DisplayYourself( );PopUpViewer( );以及GetValue( );。DisplayYourself( )方法定義在儲存格內如何顯示可擴充值。PopUpViewer( )方法定義可擴充值如何顯示以及完全顯示時如何編輯。GetValue( )方法傳回不瞭解可擴充值型態 的試算表函數可使用之OPER。
數值可由{Number,3}表示,而#DIV0可由{Error,7}表示,其中7是代表除以零(divide-by-zero)的內碼。
計算鏈則處理OPERS。例如,考慮公式:=SQRT(A1/A2)。計算引擎首先計算A1和A2,現在A1和A2擁有OPER所表示的最新值。計算引擎採用這兩個OPER,並將這兩個OPER相除,以產生一個代表相除後結果的新OPER。根據是否發生被零除,則此商OPER可為錯誤值OPER或數值OPER。然後將此OPER傳給SQRT,其使用新OPER當成結果。
考慮牽涉到可擴充型態的範例。假設MDX成員為想要加入的新可擴充值型態之一,對此其為類別MDX_Member(ExtensibleValue的子類別)的物件。該類別具有用於標題以及成員的唯一MDX名稱之私用欄位。MDX_Member類別的Get Value方法傳回Text OPER,其中「值」欄位設定為MDX成員的標題,並且extensibleValue欄位設定為MDX_Member物件。在該方法中,現有的試算表函數只看見Text OPER,但是任何瞭解MDX的函數都可尋找extensibleValue欄位看見MDX_Member物件。ExtensibleValue物件為該值,OPER包覆器只快取傳回該值的函數結果,如此GetValue呼叫該值。
前往操作330,定義用於可擴充值型態的顯示特性。顯示特性定義如何在儲存格內顯示可擴充值,以及如何檢視與編輯可擴充值。根據一個具體實施例,程式設計師定 義可擴充值本身如何顯示在儲存格內(DisplayYourself( )),以及如何檢視與編輯可擴充值(PopUpViewer( ))。例如:對於圖形可擴充值而言,DisplayYourself( )定義可指定在儲存格內顯示圖形的圖示。PopUpViewer( )定義指定如何檢視與編輯可擴充值。根據一個具體實施例,當使用者選擇儲存格內的可擴充值代表,則由PopUpViewer( )定義所定義的檢視器會顯示給使用者。對於許多可擴充值而言,像是標準影像型態,檢視器與編輯器可迅速用於與一或多個儲存格內含的可擴充值互動。一般而言,可擴充值的顯示留給程式設計師(請參閱第5圖以及相關討論)。
流程前往操作340,定義可包含試算表所支援的基本公式應如何處置可擴充值。如上述,可擴充值可包含在不瞭解該可擴充值並且只在支援的基本值上運算之公式內。例如:假設可擴充值(MyList)已經包含在Sum公式內,像是:=Sum(Filter(MyList,...);其中MyList為新List值,並且Filter消耗MyList產生新的(更小的)串列當成其結果。「舊」函數Sum預期接收一陣列值型態當成其參數,但是其已經賦予List值型態。根據一個具體實施例,只要函數或公式接收到非預期的值,則參數會「向下轉型(down-cast)」至其所預期的值型態。在目前的範例中,My List值會轉型(cast)為陣列型態。在此情況下,My List值型態的定義包含將串列值型態轉型為陣列型態的運算。
對於其他範例而言,假設個別儲存格,像是A3包含 可擴充MDX成員值,像是:==A3 & "Wubble"。所支援的基本字串連鎖運算"&"預期其參數為字串。不過在此範例中,A3的值為可擴充的MDX成員值型態。若MDX成員可擴充定義未推翻&運算子,則MDX成員值會根據所套用的定義向下轉型成為字串。例如:定義應該陳述當字串為預期時,傳回MDX成員名稱。
根據一個具體實施例,向下轉型會在時間之前完成,如此不知道該可擴充值的任何函數都會瞭解所支援的值,並且可在運算中使用該值。在此方式中,該基本函數繼續以某些方式運作。根據其他具體實施例,向下轉型並未在時間之前完成。在此情況下,計算引擎會在其呼叫基本函數之前向下轉型。
在操作350上,可擴充值型態定義與所支援函數都併入試算表應用程式內。該函數包含在應用程式內,如此可用和基本函數相同的方式來存取。根據一個具體實施例,該定義可併入表內並在召喚時存取。
前往操作360,試算表應用程式提供存取至可擴充資料型態與支援的函數。在此方式中,任何使用者都可在其試算表內包含所支援的可擴充值資料型態,方法與包含文字字串、數字等等一樣。
然後處理移至結束區塊並返回處理其他動作。
第4圖顯示根據本發明態樣,在試算表內使用可擴充值型態的處理。在開始操作之後,處理流程前往定義操作410,其中至少一個可擴充值包含在試算表的儲存格內。根 據包含可擴充值型態定義的DisplayYourself( )定義來顯示該可擴充值。
前往操作420,試算表內至少一個公式包含可擴充值當成其參數之一。該公式可呼叫專門為該可擴充值資料型態發展的函數,以及/或該公式可呼叫預期為不同值型態的函數。為了讓公式產生不瞭解可擴充值資料型態的結果,則提供定義將可擴充值資料型態轉型為該函數所支援的資料型態之一。
流程前往操作430,存取包含一或多個可擴充值的函數。根據一個具體實施例,該函數位於函數表內。
前往操作440,評估該試算表。根據函數所在的儲存格以及儲存格內含的值來評估該試算表。在此方式中,包含可擴充值的每一儲存格都可由該函數適當作用。
在操作450上,所執行的查詢以及任何計算之結果都會顯示給使用者。在一儲存格內含可擴充值之處,此顯示可擴充值得DisplayYourself( )方法所執行,如此會在開發可擴充值之使用者的完全控制之下。然後處理移至結束區塊並返回處理其他動作。
第5圖說明可擴充值的顯示、檢視與編輯。當試算表內定義與運用的可擴充值之數量不受限時,第5圖內顯示的可擴充值僅供說明,並不用於限制。
試算表的儲存格B4說明關於產量曲線的可擴充值。產量曲線可擴充值的顯示已經由DisplayYourself( )方法所定義,如此顯示出較大產量曲線的圖形圖示顯示。當選擇 儲存格B4,彈跳式檢視器(pop up viewer)顯示產量曲線510。一旦已顯示產量曲線510,使用者可依所要求操縱產量曲線。
試算表的儲存格A1說明關於圖形的可擴充值。在此範例中,圖形可擴充值以圖形的文字說明顯示在儲存格內。當選取儲存格A1,圖形520會顯示給使用者。
試算表的儲存格C1說明關於複數值的可擴充值。複數值可擴充值的顯示已經由DisplayYourself( )方法所定義,如此顯示出複數值。當選擇儲存格C1,彈跳式檢視器可顯示複數值530。另外,DisplayYourself( )和PopUpViewer( )定義可使用標準試算表檢視器來檢視與操縱。在此情況下,利用在儲存格上簡單輸入文字就可操縱複數值。
試算表的儲存格E4說明關於陣列的可擴充值。陣列可擴充值的顯示已經由DisplayYourself( )方法所定義,如此顯示出可擴充值為陣列以及陣列的代表值之事實。在此範例中,程式設計師將代表值定義為陣列內含的總合或值。當選擇儲存格E4,蹦現檢視器顯示陣列540。一旦已顯示陣列540,使用者可依所要求操縱陣列。
利用此範例可瞭解,可擴充值可用許多不同方式顯示在儲存格內,並且可使用許多種方法來審查與編輯。定義該可擴充值型態的程式設計師可決定在儲存格內呈現可擴充值的最佳方式,以及檢視與編輯可擴充值的最佳方式。
上面的說明書、範例以及資料提供本發明的製造與使 用之一個完整說明。因為在不悖離本發明精神與範疇的前提下可產生許多本發明具體實施例,本發明完全由下附的申請專利範圍所界定。
2‧‧‧電腦
5‧‧‧中央處理單元
7‧‧‧系統記憶體
9‧‧‧隨機存取記憶體
10‧‧‧試算表應用程式
11‧‧‧唯讀記憶體
12‧‧‧系統匯流排
14‧‧‧大量儲存裝置
16‧‧‧作業系統
18‧‧‧網路
20‧‧‧網路介面單元
22‧‧‧輸入/輸出控制器
26‧‧‧計算引擎
104‧‧‧範例試算表視窗
116‧‧‧試算表
118‧‧‧列7
120‧‧‧行C
122‧‧‧儲存格C7
124‧‧‧捲軸
126‧‧‧捲軸
128‧‧‧儲存格A3
130‧‧‧儲存格A4
132‧‧‧儲存格A5
134‧‧‧文字
136‧‧‧文字
140‧‧‧下拉式選單功能表
142‧‧‧新增可擴充值
144‧‧‧編輯可擴充值
160‧‧‧產量曲線值
164‧‧‧圖形值
200‧‧‧試算表系統
202‧‧‧伺服器
204‧‧‧OLAP資料庫
206‧‧‧用戶端
208‧‧‧試算表應用程式
210‧‧‧試算表儲存格
212‧‧‧現用儲存格
220‧‧‧計算引擎
222‧‧‧試算表資料儲存體
224‧‧‧函數表
510‧‧‧產量曲線
520‧‧‧圖形
530‧‧‧複數值
540‧‧‧陣列
第1圖說明電腦的範例計算結構;第2圖說明與可擴充值互動的試算表系統之簡介;第3圖顯示將可擴充值型態與關聯函數加入試算表的處理;第4圖顯示在試算表內使用可擴充值型態的處理;以及第5圖說明依照本發明態樣的可擴充值之顯示、檢視與編輯。
200‧‧‧試算表系統
202‧‧‧伺服器
204‧‧‧OLAP資料庫
206‧‧‧用戶端
208‧‧‧試算表應用程式
210‧‧‧試算表儲存格
212‧‧‧現用儲存格
220‧‧‧計算引擎
222‧‧‧試算表資料儲存體
224‧‧‧函數表

Claims (20)

  1. 一種用於在可擴充值(extensible value)上運算之電腦實施方法,其包含:直接從一試算表(spreadsheet)的一儲存格(cell)中獲得一可擴充值,其中該可擴充值是一真值(true value)使得該儲存格本身包含該值;其中該可擴充值為一可擴充值資料型態(extensible value data type)之一;其中利用一相同資料結構來定義基本物件(base object)和可擴充值物件(extensible value object);其中該相同資料結構包括一可擴充值資料欄位(extensible value data field),且其中當定義(define)該可擴充值物件時,該可擴充值資料欄位指到(point to)該可擴充值物件,且其中當定義該基本物件時,該可擴充值資料欄位為空(null);以及執行牽涉到該可擴充值的一運算(operation),其中該可擴充值的處理方式類似於對基本值的處理方式;其中在該試算表內處理資料的每一個函數(function)被放置在一函數表(function table)內,該函數表包括基本函數和牽涉到該可擴充值資料型態的函數;其中被包含在該函數表內,牽涉到該等與該可擴充值資料型態的所有函數都是由一第三方開發者所定義;其中 該可擴充值資料型態定義出,描述如何顯示在該試算表之該儲存格內的該可擴充值資料型態之一表示方式的一個定義(definition),以及描述如何顯示從用來展示該可擴充值的該儲存格外部(external)的一使用者介面元件的一個定義。
  2. 如申請專利範圍第1項所述之電腦實施方法,另包含當已選取該可擴充值時,在一檢視器內顯示該可擴充值,其中該檢視器可用於檢視與編輯該可擴充值。
  3. 如申請專利範圍第1項所述之電腦實施方法,其中執行牽涉到該可擴充值的該運算包含當該運算不支援該可擴充值時,轉型(cast)該可擴充值成為一可支援的基本型態。
  4. 如申請專利範圍第3項所述之電腦實施方法,其中轉型該可擴充值包含轉型該可擴充值成為下列之一:一字串型態(string type)、一錯誤型態(error type)以及一數字型態(number type)。
  5. 如申請專利範圍第3項所述之電腦實施方法,其中轉型該可擴充值包含在要求執行該運算之前,轉型該可擴充值。
  6. 如申請專利範圍第1項所述之電腦實施方法,另包含從由一運算子所定義的一物件來存取該可擴充值。
  7. 如申請專利範圍第2項所述之電腦實施方法,其中當無法理解該可擴充值的一函數消耗(consume)該可擴充值時,該可擴充值提供相關聯的函數以及該可擴充值會如何運作的一行為(behavior)。
  8. 如申請專利範圍第1項所述之電腦實施方法,另包含連結至一多維式資料庫,並從牽涉到該可擴充值的該多維式(multidimensional)資料庫中獲得資料。
  9. 如申請專利範圍第1項所述之電腦實施方法,另包含提供一顯示定義給該可擴充值資料型態。
  10. 一種具有電腦可執行指令用來與一試算表內可擴充值互動的電腦可讀取儲存媒體,包含:定義一可擴充值物件;其中該可擴充值物件之定義包括描述出,如何顯示在該試算表之該儲存格內的該可擴充值物件的一個定義,以及當該可擴充值資料型態在彈跳式檢視器(pop-up viewer)內完整顯示時,如何顯示該可擴充值資料型態的一個定義;其中利用一相同資料結構來定義基本物件和可擴充值物件;其中該相同資料結構包括一可擴充值資料欄位,且其中當定義該可擴充值物件時,該可擴充值資料欄位指到該可擴充值物件,且其中當定義該基本物件時,該可擴 充值資料欄位為空;在該試算表的一儲存格內包含由該可擴充值資料型態所定義的一可擴充值;執行牽涉到該可擴充值的一運算;其中由至少下列之一執行該運算:一基本函數以及由一第三方所定義可在該可擴充值資料型態上運算的一函數;其中該第三方定義的函數被放置在一函數表內,且其中該函數表也包括該基本函數,且其中該第三方定義的函數包括執行牽涉到該可擴充值的該運算的所有功能。
  11. 如申請專利範圍第10項所述之電腦可讀取儲存媒體,其中定義該可擴充值物件另包含定義執行至少一運算以使用該可擴充值的函數之一列表。
  12. 如申請專利範圍第11項所述之電腦可讀取儲存媒體,其中當執行的該運算無法理解該可擴充值時,定義該可擴充值物件另包含定義用於該擴充值的一行為。
  13. 如申請專利範圍第11項所述之電腦可讀取儲存媒體,其中定義該可擴充值物件另包含:定義在一儲存格內顯示該可擴充值之一方式;並且定義用於檢視與編輯該可擴充值的一檢視器。
  14. 如申請專利範圍第10項所述之電腦可讀取儲存媒體,其中執行牽涉到該可擴充值的該運算包含轉型該可擴充值成為值的其他型態。
  15. 如申請專利範圍第12項所述之電腦可讀取儲存媒體,其中定義該可擴充值物件另包含在要求執行該運算之前,轉型該可擴充值成為下列之一:一字串型態、一錯誤型態以及一數字型態。
  16. 一種與來自一試算表的可擴充值互動之系統,其包含:一處理器,其被配置以執行運算;一試算表應用程式,其耦合至一網路並被配置以執行步驟,其包含:直接在該試算表的一儲存格內包含一可擴充值;其中依據一定義,在該儲存格內顯示該可擴充值,該定義描述如何顯示在該試算表之該儲存格內的一可擴充值資料型態,且其中該可擴充值資料型態被定義為具有對應於該可擴充值之一實例的該可擴充值資料型態的一個定義;其中利用一相同資料結構來定義基本物件和可擴充值物件;其中該相同資料結構包括一可擴充值資料欄位,且其中當定義該可擴充值物件時,該可擴充值資料欄位指到該可擴充值物件,且其中當定義該基本物件時,該可擴充值資料欄位為空;以及 在該處理器上執行牽涉到該可擴充值的一運算,其中一基本試算表運算可消耗該可擴充值,且其中該可擴充值資料型態包括運作在該可擴充值上的第三方開發函數,且其中所有該等第三方開發函數和由該試算表應用程式定義的基本函數一起儲存。
  17. 如申請專利範圍第16項所述之系統,其中該試算表應用程式進一步被配置以決定執行至少一運算以使用該可擴充值的函數之一集合。
  18. 如申請專利範圍第17項所述之系統,其中該試算表應用程式進一步被配置以轉型該可擴充值成為其他型態,來回應該基本試算表應用程式所預期的型態。
  19. 如申請專利範圍第17項所述之系統,另包含一顯示器,其中根據一顯示定義,該顯示器被配置以在一儲存格內顯示該可擴充值的表現形式(representation),並在一檢視器內顯示該可擴充值,如此可完整檢視與編輯該可擴充值。
  20. 如申請專利範圍第17項所述之系統,其中轉型該可擴充值包含在要求執行該運算之前,轉型該可擴充值成為下列之一:一字串型態、一錯誤型態以及一數字型態。
TW095141406A 2005-12-09 2006-11-08 用於儲存格的可擴充值型態的電腦實施方法、電腦可讀取儲存媒體和系統 TWI423050B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/297,991 US8161372B2 (en) 2005-12-09 2005-12-09 Extensible value types in cells

Publications (2)

Publication Number Publication Date
TW200741489A TW200741489A (en) 2007-11-01
TWI423050B true TWI423050B (zh) 2014-01-11

Family

ID=38140918

Family Applications (1)

Application Number Title Priority Date Filing Date
TW095141406A TWI423050B (zh) 2005-12-09 2006-11-08 用於儲存格的可擴充值型態的電腦實施方法、電腦可讀取儲存媒體和系統

Country Status (5)

Country Link
US (1) US8161372B2 (zh)
KR (1) KR101330419B1 (zh)
CN (1) CN101326490B (zh)
TW (1) TWI423050B (zh)
WO (1) WO2007070322A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090172063A1 (en) * 2007-12-26 2009-07-02 Microsoft Corporation Multi-Threaded Codeless User-Defined Functions
US20090228776A1 (en) * 2008-03-05 2009-09-10 Microsoft Corporation Dynamic formulas for spreadsheet cells
US8166385B2 (en) * 2008-08-27 2012-04-24 The Board Of Trustees Of The Leland Stanford Junior University Spreadsheet system and method for managing photos
US20100095195A1 (en) * 2008-10-15 2010-04-15 Apple Inc. Defining spreadsheet functions
US20110072340A1 (en) * 2009-09-21 2011-03-24 Miller Darren H Modeling system and method
US20160085738A1 (en) * 2014-09-24 2016-03-24 Microsoft Technology Licensing, Llc Cloud-Based Parallel Computation Using Actor Modules
US9286286B1 (en) * 2015-01-03 2016-03-15 Chahid Kamel Ghaddar Method, apparatus, and computer program product for optimizing parameterized models using functional paradigm of spreadsheet software
US10963635B2 (en) * 2015-11-02 2021-03-30 Microsoft Technology Licensing, Llc Extensibility of compound data objects
US10599764B2 (en) 2015-11-02 2020-03-24 Microsoft Technology Licensing, Llc Operations on images associated with cells in spreadsheets
US11157689B2 (en) 2015-11-02 2021-10-26 Microsoft Technology Licensing, Llc Operations on dynamic data associated with cells in spreadsheets
US10515145B2 (en) 2015-11-02 2019-12-24 Microsoft Technology Licensing, Llc Parameterizing and working with math equations in a spreadsheet application
US11023668B2 (en) * 2015-11-02 2021-06-01 Microsoft Technology Licensing, Llc Enriched compound data objects
US10394947B2 (en) * 2015-12-03 2019-08-27 Workday, Inc. Spreadsheet with unit based math
US10437922B2 (en) 2015-12-03 2019-10-08 Workday, Inc. Spreadsheet with unit based conversions
US11222170B2 (en) 2015-12-03 2022-01-11 Workday, Inc. Spreadsheet with unit parsing
US20240070382A1 (en) * 2018-10-15 2024-02-29 Dayal Family LLC Method and System for Dynamic Naming of Component Expressions Within a Formula in a Cell in a Spreadsheet Application
US11966690B2 (en) * 2022-08-29 2024-04-23 Microsoft Technology Licensing, Llc Enhanced integration of spreadsheets with external environments

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138130A (en) * 1995-12-08 2000-10-24 Inventure Technologies, Inc. System and method for processing data in an electronic spreadsheet in accordance with a data type
TW452780B (en) * 1998-11-18 2001-09-01 Knowledge Modeling Inst Inc Intelligent data structure, processing apparatus, and medium using network
TW200407728A (en) * 2002-11-01 2004-05-16 Toppoly Optoelectronics Corp Dynamic document generation system and the method thereof
US20050210389A1 (en) * 2004-03-17 2005-09-22 Targit A/S Hyper related OLAP

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5598519A (en) 1994-11-08 1997-01-28 Microsoft Corporation Method and system for direct cell formatting in a spreadsheet
US6119130A (en) 1996-03-28 2000-09-12 Oracle Corporation Method and apparatus for providing schema evolution without recompilation
US6701485B1 (en) 1999-06-15 2004-03-02 Microsoft Corporation Binding spreadsheet cells to objects
US6624826B1 (en) * 1999-09-28 2003-09-23 Ricoh Co., Ltd. Method and apparatus for generating visual representations for audio documents
US6502111B1 (en) 2000-07-31 2002-12-31 Microsoft Corporation Method and system for concurrent garbage collection
US6988241B1 (en) 2000-10-16 2006-01-17 International Business Machines Corporation Client side, web-based spreadsheet
GB0028434D0 (en) 2000-11-22 2001-01-10 Decision Curve Ltd Methods and apparatus for automatically producing spreadsheet-based models
US6779151B2 (en) 2001-01-05 2004-08-17 Microsoft Corporation Storing objects in a spreadsheet
US7155665B1 (en) 2001-06-18 2006-12-26 Microsoft Corporation Method for creating an embedded database in a spreadsheet
TWI248023B (en) * 2001-11-09 2006-01-21 Sheng A Tsao Data object oriented repository system
US7266763B2 (en) 2002-11-26 2007-09-04 Microsoft Corporation User defined spreadsheet functions
US7017112B2 (en) 2003-02-28 2006-03-21 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US7310719B2 (en) 2003-07-24 2007-12-18 Sap Aktiengesellschaft Memory management tile optimization
US7730450B2 (en) * 2004-08-12 2010-06-01 National Instruments Corporation Automatic versioning and data mutation of user-defined data types
US20060036939A1 (en) 2004-08-13 2006-02-16 Microsoft Corporation Support for user-specified spreadsheet functions
US8745483B2 (en) 2004-10-07 2014-06-03 International Business Machines Corporation Methods, systems and computer program products for facilitating visualization of interrelationships in a spreadsheet
US7793273B2 (en) * 2004-11-23 2010-09-07 National Instruments Corporation Type propagation for automatic casting of output types in a data flow program
US8726143B2 (en) 2005-01-14 2014-05-13 Microsoft Corporation System and method for a spreadsheet application supporting diverse formulaic functions
US7693860B2 (en) 2005-03-18 2010-04-06 Microsoft Corporation Method and system to associate cell and item metadata
US20060224946A1 (en) 2005-03-31 2006-10-05 International Business Machines Corporation Spreadsheet programming
US7752536B2 (en) 2005-09-09 2010-07-06 Microsoft Corporation Designating, setting and discovering parameters for spreadsheet documents
US20090006466A1 (en) 2005-12-09 2009-01-01 Microsoft Corporation Managing extensible value types in spreadsheet cells

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138130A (en) * 1995-12-08 2000-10-24 Inventure Technologies, Inc. System and method for processing data in an electronic spreadsheet in accordance with a data type
TW452780B (en) * 1998-11-18 2001-09-01 Knowledge Modeling Inst Inc Intelligent data structure, processing apparatus, and medium using network
TW200407728A (en) * 2002-11-01 2004-05-16 Toppoly Optoelectronics Corp Dynamic document generation system and the method thereof
US20050210389A1 (en) * 2004-03-17 2005-09-22 Targit A/S Hyper related OLAP

Also Published As

Publication number Publication date
KR101330419B1 (ko) 2013-11-15
CN101326490B (zh) 2012-08-22
US8161372B2 (en) 2012-04-17
US20070136652A1 (en) 2007-06-14
TW200741489A (en) 2007-11-01
WO2007070322A1 (en) 2007-06-21
CN101326490A (zh) 2008-12-17
KR20080073733A (ko) 2008-08-11

Similar Documents

Publication Publication Date Title
TWI423050B (zh) 用於儲存格的可擴充值型態的電腦實施方法、電腦可讀取儲存媒體和系統
US11163542B2 (en) Dynamically generating and rendering user interfaces based on data models
JP5255443B2 (ja) スプレッドシート文書のパラメータの指定、セッティング、および発見
US8656271B2 (en) Adapting a spreadsheet for use with a complex object
US10198425B2 (en) Methods and apparatus for reusing report design components and templates
US7266763B2 (en) User defined spreadsheet functions
JP4104565B2 (ja) スキーマベースの階層データ構造をフラットデータ構造に変換するための方法およびシステム
EP2396736B1 (en) Displaying multiple row and column header areas in a summary table
US7949953B2 (en) Designing and generating charts to graphically represent data in a data source
US7634724B2 (en) Systems and methods for supporting custom graphical representations in reporting software
US20090006466A1 (en) Managing extensible value types in spreadsheet cells
US20070250295A1 (en) Multidimensional modeling system and related method
US7810032B2 (en) System and method for performing over time statistics in an electronic spreadsheet environment
WO2003098500A1 (en) Method and apparatus for automatically producing spreadsheet-based models
US7743316B2 (en) Method and system for hiding sensitive data in an electronic spreadsheet environment
US20040243599A1 (en) Batch-based method and tool for graphical manipulation of workflows
US20230102947A1 (en) Providing operations in accordance with worksheet relationships and data object relationships
JP7339628B2 (ja) エクセルツールを用いたオンラインレポート作成システム
US20080294406A1 (en) Context-based completion for life science applications
JP2000250909A (ja) 構造化文書表示装置及び方法
Saint-Paul et al. Data services in your spreadsheet!
JP2022097358A (ja) クエリバインディング機能を備えたオンラインレポート作成システム
Sentence A New Approach to Spreadsheet Analytics Management in Financial Markets
Arganbright Spreadsheet
McKinney INTRODUCTION TO GAMS

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees