專利名稱:用于表示工作簿的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及文件格式,尤其涉及用于表示組件化的電子表格應(yīng)用程序中的工作簿的特征和數(shù)據(jù)的方法和文件格式。
背景技術(shù):
信息時(shí)代促進(jìn)了使用電子表格軟件應(yīng)用程序構(gòu)建提供信息的電子表格的時(shí)期。然而,對(duì)先前的電子表格文件格式中的特征和數(shù)據(jù)的組織對(duì)于外部的程序員和開(kāi)發(fā)者而言是非常混亂且不清楚的。例如,先前的電子表格文件格式是以單個(gè)文件的形式使用包含呈現(xiàn)工作簿所需的所有信息的二進(jìn)制記錄格式來(lái)創(chuàng)建的。由于一般使用專有格式來(lái)創(chuàng)建這些單個(gè)文件,因此編寫(xiě)代碼以與這些文件格式一起工作以及訪問(wèn)這些文件格式而不使用創(chuàng)建該文件格式的應(yīng)用程序?qū)τ趯I(yè)開(kāi)發(fā)者而言是可怕的事件。
另一問(wèn)題是基本文檔或工作表的重用。例如,即使在同一應(yīng)用程序中,也很難從工作簿文件中提取一個(gè)或多個(gè)工作表,并在不同的工作簿中重用所提取的工作表并保持工作表的完整性。相比而言,在不同的應(yīng)用程序之間重用工作表更糟。類似地,重用工作表上的內(nèi)容,例如將來(lái)自EXCEL的表重用到WORD也是困難的。
另外,由于單個(gè)文件格式,實(shí)際上不可能鎖定工作表的一部分。關(guān)于文件鎖定的大多數(shù)技術(shù)都是在文件級(jí)完成的,由此如果文件被用戶鎖定,則沒(méi)有其它用戶可以編輯該文件。查看是可能的,但不能編輯。
還存在文檔詢問(wèn)的問(wèn)題。找出工作簿文件內(nèi)的內(nèi)容,例如找出2004銷售預(yù)測(cè)的工作表可能是令人畏縮的任務(wù)。很難編寫(xiě)在編程上在不使用創(chuàng)建工作簿的同一電子表格應(yīng)用程序的情況下找出電子表格文件的單元格A1并確定該單元格的內(nèi)容(串值、公式、計(jì)算結(jié)果)的代碼。也很難找出單個(gè)文件格式演示的各部分并確定關(guān)于該內(nèi)容的語(yǔ)義。例如,很難編寫(xiě)在編程上在不使用電子表格應(yīng)用程序的情況下定位電子表格應(yīng)用程序中的數(shù)據(jù)列表,并向該列表添加3行數(shù)據(jù)的代碼。
也很難實(shí)現(xiàn)可以很好地處理現(xiàn)有二進(jìn)制文件格式的讀取器和書(shū)寫(xiě)器類。即使開(kāi)發(fā)了以應(yīng)用程序?yàn)槟繕?biāo)的工具,它也不能詢問(wèn)所有的文檔格式。這一問(wèn)題被稱為單個(gè)文件格式的不透明性。
此外,由于數(shù)據(jù)的相互混合,對(duì)一個(gè)或多個(gè)工作表重新加印記在同一電子表格應(yīng)用程序外部幾乎是不可能的。對(duì)工作表重新加印記涉及將工作表從工作簿A中取出、將其移動(dòng)到工作簿B、以及使該工作表看似在具有同一基于文本的格式的工作簿B的正常創(chuàng)作環(huán)境中創(chuàng)作的那樣。
文檔表面化(document surfacing),即取出工作表文檔的片段并將它們放置到不同應(yīng)用程序的另一文檔中的能力也是一個(gè)問(wèn)題。例如,被復(fù)制到演示文檔的電子表格很難以單個(gè)文件格式來(lái)詢問(wèn)。
因此,本領(lǐng)域中對(duì)解決上述缺陷和不足存在尚未滿足的需求。
發(fā)明內(nèi)容
本發(fā)明的實(shí)施例提供了用于在計(jì)算裝置內(nèi)實(shí)現(xiàn)的模塊化內(nèi)容框架中表示工作簿的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品。本發(fā)明的實(shí)施例揭示了一種基于諸如可擴(kuò)展標(biāo)記語(yǔ)言(XML)文件格式和/或二進(jìn)制文件格式等開(kāi)放標(biāo)準(zhǔn)的文件格式,以及一種用于在電子表格應(yīng)用程序文件內(nèi)組織和模型化工作簿的特征和數(shù)據(jù)的方法。設(shè)計(jì)該文件格式,使得它由集合和部件組成。每一集合擔(dān)當(dāng)文件夾,每一模塊化部件擔(dān)當(dāng)文件。這些單獨(dú)的文件用關(guān)系相關(guān)在一起,其中每一單獨(dú)的文件與一關(guān)系類型相關(guān)聯(lián)。這一設(shè)計(jì)極大簡(jiǎn)化了電子表格應(yīng)用程序組織工作簿特征和數(shù)據(jù)的方式,并呈現(xiàn)了一種混亂程度小得多的邏輯模型。
一個(gè)實(shí)施例是一種用于在模塊化內(nèi)容框架中表示工作簿的文件格式。該模塊化內(nèi)容框架可包括與模塊化部件相關(guān)聯(lián)的文件格式容器。該文件格式包括邏輯上獨(dú)立但通過(guò)一個(gè)或多個(gè)關(guān)系彼此相關(guān)聯(lián)的模塊化部件。每一模塊化部件與一種關(guān)系類型相關(guān)聯(lián),且模塊化部件包括用作對(duì)工作簿屬性的指導(dǎo)的工作簿部件。模塊化部件還包括與工作簿部件相關(guān)聯(lián)并用于指定工作表內(nèi)的單元格的定義的工作表部件、包含與宏表相關(guān)聯(lián)的數(shù)據(jù)的表部件、包含與定義圖表相關(guān)聯(lián)的數(shù)據(jù)的圖表部件、和/或包含與工作簿對(duì)話相關(guān)聯(lián)的對(duì)話表部件。每一模塊化部件能夠用或不用電子表格應(yīng)用程序來(lái)單獨(dú)詢問(wèn),且不需要詢問(wèn)其它模塊化部件,這在查詢工作簿時(shí)提供了效率上的增益。
模塊化部件還可包括包含與文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件、以及包含與文件格式相關(guān)聯(lián)的一個(gè)或多個(gè)縮略圖的縮略圖部件。每一模塊化部件能夠從工作簿中提取和/或復(fù)制,并在不同的工作簿中連同相關(guān)聯(lián)模塊化部件一起重用,這些相關(guān)聯(lián)模塊化部件是通過(guò)遍歷所重用的模塊化部件的關(guān)系來(lái)標(biāo)識(shí)的。
另一實(shí)施例是一種用于以文件格式表示工作簿的方法,其中,與工作簿相關(guān)聯(lián)的模塊化部件包括被寫(xiě)入文件格式的每一部件。該方法涉及編寫(xiě)文件格式的工作簿部分、向該工作簿查詢工作表關(guān)系類型、以及與工作表部件分離地編寫(xiě)文件格式的工作表部件。該方法還涉及在工作表部件和工作簿部件之間建立關(guān)系。另外,該方法可涉及在工作簿部件和文件格式容器之間建立關(guān)系,其中文件格式容器包括包含與文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件,以及包含與文檔格式相關(guān)聯(lián)的縮略圖的縮略圖部件。
此外,該方法可涉及編寫(xiě)與關(guān)系類型相關(guān)聯(lián)的模塊化部件,其中,要共享的模塊化部件僅被編寫(xiě)一次;以及建立與所編寫(xiě)的模塊化部件的關(guān)系。編寫(xiě)模塊化部件也可涉及檢查與工作簿相關(guān)聯(lián)的數(shù)據(jù)、確定所檢查的數(shù)據(jù)是否被寫(xiě)入模塊化部件、以及當(dāng)所檢查的數(shù)據(jù)未被寫(xiě)入模塊化部件時(shí)編寫(xiě)模塊化部件以包括所檢查的數(shù)據(jù)。
又一實(shí)施例是一種包括計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,該計(jì)算機(jī)可讀介質(zhì)上儲(chǔ)存有用于使計(jì)算機(jī)以文件格式表示工作簿的控制邏輯,其中文件格式的模塊化部件包括被寫(xiě)入文件格式的每一部件。該控制邏輯包括用于使計(jì)算機(jī)編寫(xiě)文件格式的工作簿部件、向工作簿查詢工作表關(guān)系類型、與工作簿部件分離地編寫(xiě)文件格式的工作表部件、以及在工作表部件和工作簿部件之間建立關(guān)系的計(jì)算機(jī)可讀程序代碼。
本發(fā)明可使用計(jì)算機(jī)進(jìn)程、計(jì)算系統(tǒng)來(lái)實(shí)現(xiàn),或被實(shí)現(xiàn)為諸如計(jì)算機(jī)程序產(chǎn)品或計(jì)算機(jī)可讀介質(zhì)等制品。計(jì)算機(jī)程序產(chǎn)品可以是計(jì)算機(jī)系統(tǒng)可讀且編碼了用于執(zhí)行計(jì)算機(jī)進(jìn)程的指令的計(jì)算機(jī)程序的計(jì)算機(jī)存儲(chǔ)介質(zhì)。計(jì)算機(jī)程序產(chǎn)品還可以是計(jì)算系統(tǒng)可讀且編碼了用于執(zhí)行計(jì)算機(jī)進(jìn)程的指令的計(jì)算機(jī)程序的載波上的傳播信號(hào)。
當(dāng)閱讀以下詳細(xì)描述并觀察附圖時(shí),可以明白特性化本發(fā)明的這些和各種其它特征以及優(yōu)點(diǎn)。
圖1是示出在本發(fā)明的各種說(shuō)明性實(shí)施例中使用且由本發(fā)明的各種說(shuō)明性實(shí)施例提供的計(jì)算裝置的計(jì)算系統(tǒng)體系結(jié)構(gòu)。
圖2a-2c是示出依照本發(fā)明的各種說(shuō)明性實(shí)施例示出用于表示工作簿的文件格式中使用的各種模塊化部件的工作簿關(guān)系層次的框圖;以及圖3-4是依照本發(fā)明的說(shuō)明性實(shí)施例在以模塊化內(nèi)容框架表示工作簿時(shí)執(zhí)行的說(shuō)明性例程。
具體實(shí)施例方式
現(xiàn)在參考附圖,將描述本發(fā)明的各方面,附圖中,相同的標(biāo)號(hào)表示相同的元素。具體地,圖1和對(duì)應(yīng)的討論旨在提供對(duì)其中可實(shí)現(xiàn)本發(fā)明的各實(shí)施例的合適的計(jì)算環(huán)境的簡(jiǎn)要概括描述。盡管本發(fā)明將結(jié)合在個(gè)人計(jì)算機(jī)的操作系統(tǒng)上運(yùn)行而執(zhí)行的程序模塊的程序模塊的通用上下文中描述,然而本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到,本發(fā)明也可結(jié)合其它類型的計(jì)算機(jī)系統(tǒng)和程序模塊來(lái)實(shí)現(xiàn)。
一般而言,程序模塊包括例程、程序、操作、組件、數(shù)據(jù)結(jié)構(gòu)以及其它類型的結(jié)構(gòu),它們執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。此外,本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以用其它計(jì)算機(jī)系統(tǒng)配置來(lái)實(shí)施,包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器或可編程消費(fèi)者電子產(chǎn)品、小型機(jī)、大型機(jī)等等。本發(fā)明也可在分布式計(jì)算環(huán)境中實(shí)施,其中任務(wù)由通過(guò)通信網(wǎng)絡(luò)鏈接的遠(yuǎn)程處理設(shè)備來(lái)執(zhí)行。在分布式計(jì)算環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲(chǔ)器存儲(chǔ)設(shè)備中。
現(xiàn)在參考圖1,將描述用于實(shí)施本發(fā)明的一個(gè)實(shí)施例的計(jì)算機(jī)2的說(shuō)明性計(jì)算機(jī)體系結(jié)構(gòu)。圖1所示的計(jì)算機(jī)體系結(jié)構(gòu)示出了諸如服務(wù)器、臺(tái)式機(jī)、膝上型計(jì)算機(jī)或手持式計(jì)算裝置等計(jì)算裝置,包括中央處理單元5(“CPU”)、系統(tǒng)存儲(chǔ)器7(包括隨機(jī)存取存儲(chǔ)器9(“RAM”)和只讀存儲(chǔ)器(“ROM”)11)、以及將存儲(chǔ)器耦合至CPU 5的系統(tǒng)總線12。包含例如在啟動(dòng)時(shí)有助于在計(jì)算機(jī)內(nèi)的元件之間傳輸信息的基本例程的基本輸入/輸出系統(tǒng)儲(chǔ)存在ROM 11中。計(jì)算機(jī)2還包括大容量存儲(chǔ)設(shè)備14,用于儲(chǔ)存操作系統(tǒng)16、應(yīng)用程序以及其它程序模塊,這些將在下文更詳細(xì)描述。
大容量存儲(chǔ)設(shè)備14通過(guò)連接至總線12的大容量存儲(chǔ)控制器(未示出)連接到CPU 5。大容量存儲(chǔ)設(shè)備14及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為個(gè)人計(jì)算機(jī)2提供了非易失性存儲(chǔ)。盡管此處包含的計(jì)算機(jī)可讀介質(zhì)的描述指的是大容量存儲(chǔ)設(shè)備,如硬盤(pán)或CD-ROM驅(qū)動(dòng)器,然而本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)2訪問(wèn)的任何可用介質(zhì)。
作為示例而非局限,計(jì)算機(jī)可讀介質(zhì)可包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括以用于儲(chǔ)存諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任一方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性,可移動(dòng)和不可移動(dòng)介質(zhì)。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、ROM、EPROM、EEPROM、閃存或其它固態(tài)存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(pán)(“DVD”)或其它光盤(pán)存儲(chǔ)、磁盒、磁帶、磁盤(pán)存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或可以用來(lái)儲(chǔ)存所期望的信息并可由計(jì)算機(jī)2訪問(wèn)的任一其它介質(zhì)。
依照本發(fā)明的各實(shí)施例,計(jì)算機(jī)2可以使用通過(guò)諸如因特網(wǎng)等網(wǎng)絡(luò)18到遠(yuǎn)程計(jì)算機(jī)的邏輯連接在網(wǎng)絡(luò)化環(huán)境中操作。計(jì)算機(jī)2可以通過(guò)連接到總線12的網(wǎng)絡(luò)接口單元20連接到網(wǎng)絡(luò)18。應(yīng)當(dāng)理解,網(wǎng)絡(luò)接口單元20也可用于連接到其它類型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)。計(jì)算機(jī)2也可包括用于接收和處理來(lái)自包括鍵盤(pán)、鼠標(biāo)或指示筆(未示出)的多個(gè)其它設(shè)備的輸入的輸入/輸出控制器22。類似地,輸入/輸出控制器22可向顯示屏幕、打印機(jī)或其它類型的輸出設(shè)備提供輸出。
如上所述,多個(gè)程序模塊和數(shù)據(jù)文件可儲(chǔ)存在計(jì)算機(jī)2的大容量存儲(chǔ)設(shè)備14和RAM 9中,包括適用于控制網(wǎng)絡(luò)化個(gè)人計(jì)算機(jī)的操作的操作系統(tǒng)16,如來(lái)自華盛頓州雷蒙德市微軟公司的WINDOWS XP操作系統(tǒng)。大容量存儲(chǔ)設(shè)備14和RAM9也可儲(chǔ)存一個(gè)或多個(gè)程序模塊。具體地,大容量存儲(chǔ)設(shè)備14和RAM 8可儲(chǔ)存電子表格應(yīng)用程序10。電子表格應(yīng)用程序10可用于提供用于在諸如XML文件格式等開(kāi)放文件格式24中創(chuàng)建和結(jié)構(gòu)化諸如工作簿27等工作簿的功能。依照本發(fā)明的一個(gè)實(shí)施例,電子表格應(yīng)用程序10和其它應(yīng)用程序26包括來(lái)自微軟公司的OFFICE應(yīng)用程序套件,包括WORD、EXCEL和POWERPOINT應(yīng)用程序。
本發(fā)明的實(shí)施例很大程度上簡(jiǎn)化并闡明了對(duì)工作簿特征和數(shù)據(jù)的組織。電子表格程序10將工作簿文件的“部件”(特征、數(shù)據(jù)、主題、樣式、對(duì)象等)組織成邏輯的、單獨(dú)的片段,然后表達(dá)這些單獨(dú)部件之間的關(guān)系。這些關(guān)系以及工作簿“部件”的邏輯分隔構(gòu)成了一種新的文件組織,它可被諸如開(kāi)發(fā)者代碼容易地訪問(wèn),而無(wú)需使用電子表格應(yīng)用程序本身。
現(xiàn)在參考圖2a-2c,將描述依照本發(fā)明的各種說(shuō)明性實(shí)施例示出了用于表示工作簿的文件格式24中使用的各種模塊化部件的工作簿關(guān)系層次的框圖。工作簿關(guān)系層次208列出了特定的電子表格應(yīng)用程序關(guān)系。相對(duì)于確認(rèn)的可任選關(guān)系用斜體表示,而虛線連接線203表示一對(duì)可能多個(gè)關(guān)系。由此,例如,對(duì)與工作簿202相關(guān)聯(lián)的每一工作表有一個(gè)工作表部件217。
演示層次208的各種模塊化部件或組件在邏輯上是分離的,但是通過(guò)一個(gè)或多個(gè)關(guān)系相關(guān)聯(lián)。每一模塊化部件也與一種關(guān)系類型相關(guān)聯(lián),并能夠在用或不用電子表格應(yīng)用程序10的情況下和/或在詢問(wèn)或不詢問(wèn)其它模塊化部件的情況下單獨(dú)地詢問(wèn)。由此,例如,能夠更容易地定位工作表單元格的內(nèi)容,因?yàn)榭删帉?xiě)代碼以更容易地檢查工作簿中的關(guān)系并找出工作表部件,而非遍及所有的二進(jìn)制記錄搜索單元格信息,從而有效地忽略了文件格式24中的其它特征和數(shù)據(jù)。由此,編寫(xiě)代碼以用比先前的詢問(wèn)代碼更簡(jiǎn)單的方式來(lái)步進(jìn)通過(guò)單元格。此外,由于模塊化部件文件格式,簡(jiǎn)化了開(kāi)發(fā)者插入新部件或插入完全新的文件而不運(yùn)行電子表格應(yīng)用程序的代碼的“創(chuàng)作”情形。
模塊化內(nèi)容框架可包括與模塊化部件相關(guān)聯(lián)的文件格式容器204。模塊化部件包括用作對(duì)工作簿屬性的指導(dǎo)的工作簿部件202,以及工作表部件217,它與工作簿部件202相關(guān)聯(lián),并用于指定與工作表部件217相關(guān)聯(lián)的工作表內(nèi)的單元格的定義。工作簿層次208還可包括包含與文件格式24相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件205,以及包含與文件格式24相關(guān)聯(lián)的縮略圖的縮略圖部件207。
模塊化部件還包括包含與宏表相關(guān)聯(lián)的數(shù)據(jù)的表部件210、包含與定義圖表相關(guān)聯(lián)的數(shù)據(jù)的圖表部件212、以及表示工作簿中的主題的樣式表部件240。應(yīng)當(dāng)理解,每一模塊化部件能夠從工作簿中提取或復(fù)制,并在不同的工作簿中連同相關(guān)聯(lián)的模塊化部件一起重用,該相關(guān)聯(lián)模塊化部件是通過(guò)遍歷所重用的模塊化部件的關(guān)系來(lái)標(biāo)識(shí)的。當(dāng)電子表格應(yīng)用程序10遍歷所重用的模塊化部件的向內(nèi)和向外關(guān)系時(shí),標(biāo)識(shí)相關(guān)聯(lián)的模塊化部件。
其它模塊化部件可包括包含與工作簿中單元格級(jí)的樣式相關(guān)聯(lián)的數(shù)據(jù)的樣式部件220、包含與工作簿對(duì)話相關(guān)聯(lián)的數(shù)據(jù)的對(duì)話表部件214、包含描繪與工作簿相關(guān)聯(lián)的標(biāo)記語(yǔ)言格式的視件的標(biāo)記映射部件218、以及包含與工作簿中的多個(gè)單元格相關(guān)聯(lián)的串的共享串部件222。還有其它的模塊化部件包括包含與同工作簿接口相關(guān)聯(lián)的數(shù)據(jù)的工作簿連接部件224、背景圖片部件225、包含工作簿用戶通過(guò)電子郵件發(fā)送工作簿之處的信封數(shù)據(jù)的郵件信封部件242、包含與工作簿相關(guān)聯(lián)的代碼的代碼文件部件244、以及包含與工作簿相關(guān)聯(lián)的注解的注解部件247。
此外,模塊化部件可包括包含與標(biāo)記映射部件218相關(guān)聯(lián)的模式的模式部件254、包含與工作簿相關(guān)聯(lián)的圖像數(shù)據(jù)的圖像部件248、以及包含與工作簿相關(guān)聯(lián)的對(duì)象的嵌入對(duì)象部件230。其它模塊化部件還可包括包含能夠被讀入到工作簿中并改變的定制數(shù)據(jù)的用戶數(shù)據(jù)部件245、包含使用繪圖平臺(tái)構(gòu)建的對(duì)象的繪圖對(duì)象部件257、諸如Escher 1.0對(duì)象等傳統(tǒng)繪圖對(duì)象部件252、包含定義與工作表相關(guān)聯(lián)的表索引的數(shù)據(jù)的表索引部件232、以及包含定義與工作表相關(guān)聯(lián)的列表的數(shù)據(jù)的列表部件228。作為一個(gè)示例,本發(fā)明的實(shí)施例使得能夠更容易地定位工作簿中的列表,因?yàn)槿魏瘟斜砭哂信c文件格式24相分離的、表達(dá)了對(duì)應(yīng)的關(guān)系的列表部件228。與其它模塊化部件一樣,列表部件228在邏輯上與工作簿的其它特征和數(shù)據(jù)分隔和分離。此外,由于能夠清楚地理解列表的邏輯結(jié)構(gòu),因此向列表添加更多數(shù)據(jù)行也是較不復(fù)雜的。
與工作簿相關(guān)聯(lián)的其它模塊化部件可包括包含定義與工作表相關(guān)聯(lián)的數(shù)據(jù)透視表的數(shù)據(jù)的數(shù)據(jù)透視表部件234、包含定義與數(shù)據(jù)透視表相關(guān)聯(lián)的高速緩存的數(shù)據(jù)的數(shù)據(jù)透視表高速緩存定義部件235、以及包含與數(shù)據(jù)透視表高速緩存定義部件相關(guān)聯(lián)的數(shù)據(jù)的數(shù)據(jù)透視表高速緩存記錄部件237。數(shù)據(jù)透視表是一種程序工具,它允許對(duì)電子表格或數(shù)據(jù)庫(kù)表格中的所選擇的數(shù)據(jù)列和行進(jìn)行重新組織和總結(jié),以獲取期望的報(bào)告。數(shù)據(jù)透視表轉(zhuǎn)換數(shù)據(jù),以從不同的觀點(diǎn)來(lái)查看數(shù)據(jù)。應(yīng)當(dāng)理解,在一個(gè)以上關(guān)系中共享的模塊化部件通常僅被寫(xiě)入到文件一次。還應(yīng)當(dāng)理解,某些模塊化部件是全局的,因此可在文件格式中的任何地方使用。相反,某些模塊化部件是非全局的,因此僅可在有限的基礎(chǔ)上共享。
在本發(fā)明的各種實(shí)施例中,文件格式24可以依照可擴(kuò)展標(biāo)記語(yǔ)言(“XML”)和/或二進(jìn)制格式來(lái)格式化。如本領(lǐng)域的技術(shù)人員所理解的,XML是用于傳遞數(shù)據(jù)的標(biāo)準(zhǔn)格式。在XML數(shù)據(jù)格式中,模式用于向XML數(shù)據(jù)提供一組支配可傳遞的數(shù)據(jù)的類型和結(jié)構(gòu)的語(yǔ)法和數(shù)據(jù)類型規(guī)則。XML數(shù)據(jù)格式對(duì)本領(lǐng)域的技術(shù)人員是公知的,并且因此無(wú)需在此詳細(xì)描述。XML格式嚴(yán)密地反映了整個(gè)工作簿的內(nèi)部存儲(chǔ)器結(jié)構(gòu)。由此,負(fù)載和保存速度的增加是顯然的。
本發(fā)明的各實(shí)施例使得工作簿在編程上更可訪問(wèn)。這允許大量的新的使用,而這些使用對(duì)于先前的文件格式而言要實(shí)現(xiàn)太困難。例如,使用本發(fā)明的各實(shí)施例,服務(wù)器側(cè)程序能夠基于其輸入為某人創(chuàng)建工作簿。例如,創(chuàng)建關(guān)于公司A在1/1/2004-12/31/2004時(shí)段的分析報(bào)告,其中所有的變量輸入用斜體表示。
其它示例包括外部進(jìn)程掃描和重新編寫(xiě)網(wǎng)絡(luò)上的所有工作簿以更新公司標(biāo)志圖和視覺(jué)色彩方案、一個(gè)工作簿中的圖表在編程上被復(fù)制并插入到另一個(gè)工作簿中、以及從工作簿中檢索計(jì)算結(jié)果并每晚更新到數(shù)據(jù)庫(kù)。又一示例是政府機(jī)構(gòu)能夠處理工作簿,并能夠更容易地將特征和數(shù)據(jù)轉(zhuǎn)化成其內(nèi)部的基于文本的格式。
圖2a-2c還包括依照本發(fā)明的各種說(shuō)明性實(shí)施例在文件格式24中使用的關(guān)系類型。與模塊化部件相關(guān)聯(lián)的關(guān)系類型不僅標(biāo)識(shí)了關(guān)聯(lián)或依賴性,還標(biāo)識(shí)了依賴性的基礎(chǔ)。關(guān)系類型包括以下能夠標(biāo)識(shí)代碼文件的代碼文件關(guān)系、用戶數(shù)據(jù)關(guān)系、樣式表關(guān)系、注解關(guān)系、嵌入對(duì)象關(guān)系、繪圖對(duì)象關(guān)系、圖像關(guān)系、聲音關(guān)系、郵件信封關(guān)系、文檔屬性關(guān)系、縮略圖關(guān)系、模式關(guān)系、圖表關(guān)系、對(duì)話表關(guān)系、工作表關(guān)系、數(shù)據(jù)透視表關(guān)系、共享串關(guān)系、列表關(guān)系、數(shù)據(jù)透視表高速緩存關(guān)系、樣式關(guān)系、標(biāo)記映射關(guān)系、以及數(shù)據(jù)透視表高速緩存元數(shù)據(jù)關(guān)系。
參考圖2c,還示出了列出用于組織模塊化部件的集合類型的清單259。集合類型包括包含圖表部件212的圖表集合、包含對(duì)話表部件214的對(duì)話表集合、包含工作表部件217的工作表集合、包含數(shù)據(jù)透視表部件234的數(shù)據(jù)透視表集合、包含數(shù)據(jù)透視表高速緩存定義部件235和數(shù)據(jù)透視表高速緩存記錄部件237的數(shù)據(jù)透視表高速緩存集合。集合類型還包括包含樣式表部件240和樣式部件220的樣式集合、包含標(biāo)記映射部件218的標(biāo)記映射集合、包含列表部件228的列表集合、包含嵌入對(duì)象部件230和用戶數(shù)據(jù)部件245的嵌入集合。
圖3-4是依照本發(fā)明的各種說(shuō)明性實(shí)施例示出在以模塊化內(nèi)容框架表示工作簿時(shí)執(zhí)行的說(shuō)明性例程。當(dāng)閱讀此處所呈現(xiàn)的例程的討論時(shí),應(yīng)當(dāng)理解,本發(fā)明的各實(shí)施例的邏輯操作被實(shí)現(xiàn)為(1)運(yùn)行在計(jì)算系統(tǒng)上的計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作或程序模塊的序列,和/或(2)計(jì)算系統(tǒng)內(nèi)互連的機(jī)器邏輯電路或電路模塊。實(shí)現(xiàn)是取決于實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)的性能要求的選擇問(wèn)題。因此,圖3-4中所示以及構(gòu)成此處所描述的本發(fā)明的各實(shí)施例的邏輯操作用不同的方式被稱為操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊。本領(lǐng)域的技術(shù)人員可以認(rèn)識(shí)到,這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作和模塊可以用軟件、固件、專用數(shù)字邏輯以及其任一組合來(lái)實(shí)現(xiàn),而不脫離所附權(quán)利要求書(shū)中所述的本發(fā)明的精神和范圍。
現(xiàn)在參考圖2a-2c和3,例程300在操作304開(kāi)始,其中電子表格應(yīng)用程序10編寫(xiě)工作簿部件202。例程300從操作304繼續(xù)到操作305,其中電子表格應(yīng)用程序10向工作簿查詢工作表關(guān)系。下一步,在操作307,電子表格應(yīng)用程序編寫(xiě)工作簿部件202中引用的工作表部件217,并在每一工作表部件217和工作簿部件202之間建立關(guān)系。
下一步,在操作308,電子表格應(yīng)用程序10編寫(xiě)與關(guān)系類型相關(guān)聯(lián)的其它模塊化部件,諸如圖像部件248和模式部件254。要在其它模塊化部件之間共享的任何模塊化部件僅被編寫(xiě)一次。例程300然后繼續(xù)到操作310。
在操作310,電子表格應(yīng)用程序10在新編寫(xiě)的和先前編寫(xiě)的模塊化部件之間建立關(guān)系。例程300然后在返回操作312終止。
現(xiàn)在參考圖4,將描述用于編寫(xiě)模塊化部件的例程400。例程400在操作402開(kāi)始,其中電子表格應(yīng)用程序10檢查電子表格應(yīng)用程序中的數(shù)據(jù)。例程400然后繼續(xù)到檢測(cè)操作404,其中確定數(shù)據(jù)是否已被寫(xiě)入模塊化部件。當(dāng)數(shù)據(jù)未被寫(xiě)入模塊化部件時(shí),例程400從檢測(cè)操作404繼續(xù)到操作405,其中電子表格應(yīng)用程序編寫(xiě)包括所檢查的數(shù)據(jù)的模塊化部件。例程400然后繼續(xù)到下文描述的檢測(cè)操作407。
當(dāng)在檢測(cè)操作404時(shí),如果所檢查的數(shù)據(jù)已被寫(xiě)入到模塊化部件,則例程400從檢測(cè)操作404繼續(xù)到檢測(cè)操作407。在檢測(cè)操作407,確定所有的數(shù)據(jù)是否已被檢查。如果所有的數(shù)據(jù)已被檢查,則例程400在返回操作412將控制返回到其它操作。當(dāng)仍有數(shù)據(jù)要檢查,則例程400從檢測(cè)操作407繼續(xù)到操作410,其中電子表格應(yīng)用程序10指向其它數(shù)據(jù)。例程400然后返回到上述操作402。
基于以上內(nèi)容,可以理解,本發(fā)明的各種實(shí)施例包括用于在模塊化內(nèi)容框架中表示工作簿的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品。以上說(shuō)明書(shū)、示例和數(shù)據(jù)提供了對(duì)本發(fā)明的組成部分的制作和使用的完整描述。由于可以在不脫離本發(fā)明的精神和范圍的情況下做出本發(fā)明的許多實(shí)施例,因此本發(fā)明歸于所附權(quán)利要求書(shū)。
權(quán)利要求
1.一種用于表示電子表格應(yīng)用程序內(nèi)的工作簿的文件格式,所述文件格式在計(jì)算裝置中實(shí)現(xiàn)的模塊化內(nèi)容框架中表示所述工作簿,所述文件格式包括邏輯上分離但通過(guò)一個(gè)或多個(gè)關(guān)系相關(guān)聯(lián)的模塊化部件,其中,每一模塊化部件與一關(guān)系類型相關(guān)聯(lián),并且其中,所述模塊化部件包括用作對(duì)所述工作簿的屬性的指導(dǎo)的工作簿部件;以及以下的至少一個(gè)工作表部件,它與所述工作簿部件相關(guān)聯(lián),且用于指定與所述工作表部件相關(guān)聯(lián)的工作表內(nèi)的單元格的定義;包含與宏表相關(guān)聯(lián)的數(shù)據(jù)的表部件;包含與定義圖表相關(guān)聯(lián)的數(shù)據(jù)的圖表部件;以及包含與工作簿對(duì)話相關(guān)聯(lián)的數(shù)據(jù)的對(duì)話表部件;其中,每一模塊化部件能夠在不使用所述電子表格應(yīng)用程序且不詢問(wèn)其它模塊化部件的情況下被單獨(dú)詢問(wèn)。
2.如權(quán)利要求1所述的文件格式,其特征在于,所述模塊化內(nèi)容框架包括與所述模塊化部件相關(guān)聯(lián)的文件格式容器,其中,所述模塊化部件還包括包含與所述文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件;以及包含與所述文件格式相關(guān)聯(lián)的縮略圖的縮略圖部件。
3.如權(quán)利要求1所述的文件格式,其特征在于,每一模塊化部件能夠是以下之一從所述工作簿中提取和復(fù)制,以及在不同的工作簿中連同相關(guān)聯(lián)的模塊化部件一起重用,所述相關(guān)聯(lián)的模塊化部件是通過(guò)遍歷所重用的模塊化部件的關(guān)系來(lái)標(biāo)識(shí)的。
4.如權(quán)利要求3所述的文件格式,其特征在于,所述模塊化部件還包括以下的至少一個(gè)表示所述工作簿中的主題的樣式表部件;包含與所述工作簿中的單元格級(jí)的樣式相關(guān)聯(lián)的數(shù)據(jù)的樣式部件;包含與所述工作簿相關(guān)聯(lián)的注解的注解部件;包含描述與所述工作簿相關(guān)聯(lián)的標(biāo)記語(yǔ)言格式的視件的標(biāo)記映射部件;包含與所述標(biāo)記映射部件相關(guān)聯(lián)的模式的模式部件;包含與所述工作簿中的多個(gè)單元格相關(guān)聯(lián)的串的共享串部件;包含與同所述工作簿接口相關(guān)聯(lián)的數(shù)據(jù)的工作簿連接部件;包含所述工作簿的用戶通過(guò)電子郵件發(fā)送所述工作簿之處的信封數(shù)據(jù)的郵件信封部件;以及包含與所述工作簿相關(guān)聯(lián)的代碼的代碼文件部件。
5.如權(quán)利要求4所述的文件格式,其特征在于,所述模塊化部件還包括以下的至少一個(gè)包含與所述工作簿相關(guān)聯(lián)的圖像數(shù)據(jù)的圖像部件;包含與所述工作簿相關(guān)聯(lián)的對(duì)象的嵌入對(duì)象部件;包含能夠被讀入到所述工作簿中并改變的定制數(shù)據(jù)的用戶數(shù)據(jù)部件;以及包含使用繪圖平臺(tái)構(gòu)建的對(duì)象的繪圖對(duì)象部件。
6.如權(quán)利要求5所述的文件格式,其特征在于,所述模塊化部件還包括以下的至少一個(gè)包含定義與所述工作表相關(guān)聯(lián)的表索引的數(shù)據(jù)的表索引部件;包含定義與所述工作表相關(guān)聯(lián)的列表的數(shù)據(jù)的列表部件;包含定義與所述工作表相關(guān)聯(lián)的數(shù)據(jù)透視表的數(shù)據(jù)的數(shù)據(jù)透視表部件;包含定義與所述數(shù)據(jù)透視表相關(guān)聯(lián)的高速緩存的數(shù)據(jù)的數(shù)據(jù)透視表高速緩存定義部件;以及包含與所述數(shù)據(jù)透視表高速緩存定義部件相關(guān)聯(lián)的數(shù)據(jù)的數(shù)據(jù)透視表高速緩存記錄部件。
7.如權(quán)利要求6所述的文件格式,其特征在于,所述模塊化部件的至少某一些是按集合類型來(lái)組織的,并且其中,所述集合類型包括以下的至少一個(gè)包括所述圖表部件的圖表集合;包括所述對(duì)話表部件的對(duì)話表集合;包括所述工作表部件的工作表集合;包括所述數(shù)據(jù)透視表部件的數(shù)據(jù)透視表集合;包括所述數(shù)據(jù)透視表高速緩存定義部件和所述數(shù)據(jù)透視表高速緩存記錄部件中的至少一個(gè)的數(shù)據(jù)透視表高速緩存集合;包括所述樣式表部件和所述樣式部件的至少一個(gè)的樣式集合;包括所述標(biāo)記映射部件的標(biāo)記映射集合;包括所述列表部件的列表集合;以及包括所述嵌入對(duì)象部件和所述用戶數(shù)據(jù)部件的至少一個(gè)的嵌入集合。
8.如權(quán)利要求3所述的文件格式,其特征在于,與所述模塊化部件相關(guān)聯(lián)的關(guān)系類型包括以下的至少一個(gè)能夠標(biāo)識(shí)代碼文件的代碼文件關(guān)系、用戶數(shù)據(jù)關(guān)系、超鏈接關(guān)系、樣式表關(guān)系、注解關(guān)系、嵌入對(duì)象關(guān)系、繪圖對(duì)象關(guān)系、圖像關(guān)系、郵件信封關(guān)系、文檔屬性關(guān)系、縮略圖關(guān)系、模式關(guān)系、圖表關(guān)系、對(duì)話表關(guān)系、工作表關(guān)系、以及數(shù)據(jù)透視表關(guān)系、共享串關(guān)系、列表關(guān)系、數(shù)據(jù)透視表高速緩存記錄關(guān)系、樣式關(guān)系、標(biāo)記映射關(guān)系、以及數(shù)據(jù)透視表高速緩存元數(shù)據(jù)關(guān)系。
9.如權(quán)利要求3所述的文件格式,其特征在于,所述工作表的內(nèi)容能夠是以下之一從所述工作簿中提取或復(fù)制,以及在不同的工作簿中重用。
10.如權(quán)利要求3所述的文件格式,其特征在于,每一模塊化部件能夠被單獨(dú)鎖定,而其它模塊化部件保持可用于鎖定,其中,多個(gè)編輯器的每一個(gè)可并發(fā)地編輯所述文件格式的模塊化部件。
11.如權(quán)利要求3所述的文件格式,其特征在于,所述模塊化部件能夠在詢問(wèn)模塊化部件時(shí)提供關(guān)于包含在所述工作簿中的內(nèi)容的語(yǔ)義。
12.如權(quán)利要求3所述的文件格式,其特征在于,所述模塊化部件的至少一個(gè)是在所述工作簿的創(chuàng)作環(huán)境中創(chuàng)作的,并且其中,所述工作簿中的至少一個(gè)模塊化部件能夠是以下之一從所述工作簿中提取和復(fù)制,以及被移動(dòng)到不同的工作簿,并且其中,至少一個(gè)模塊化部件還能夠被改變以表現(xiàn)為如同所述至少一個(gè)模塊化部件是在所述不同工作簿的創(chuàng)作環(huán)境中創(chuàng)作的一樣。
13.如權(quán)利要求3所述的文件格式,其特征在于,所述文件格式能夠提供對(duì)所述工作簿中的每一工作表的高分辨率縮略圖預(yù)覽。
14.如權(quán)利要求1所述的文件格式,其特征在于,所述文件格式是依照標(biāo)記語(yǔ)言格式和二進(jìn)制格式的至少一個(gè)來(lái)格式化的。
15.一種用于在文件格式中表示工作簿的方法,其中,與所述工作簿相關(guān)聯(lián)的模塊化部件包括被寫(xiě)到所述文件格式的每一部件,所述方法包括編寫(xiě)所述文件格式的工作簿部件;向所述工作簿部件查詢工作表關(guān)系類型;與所述工作簿部件分離地編寫(xiě)所述文件格式的工作表部件;以及建立所述工作表部件和所述工作簿部件之間的關(guān)系。
16.如權(quán)利要求15所述的方法,其特征在于,還包括建立所述工作簿部件和文件格式容器之間的關(guān)系,其中,所述文件格式容器包括以下的至少一個(gè)包含與所述文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件;以及包含與所述文件格式相關(guān)聯(lián)的縮略圖的縮略圖部件。
17.如權(quán)利要求15所述的方法,其特征在于,還包括編寫(xiě)與關(guān)系類型相關(guān)聯(lián)的其它模塊化部件,其中,要共享的所述其它模塊化部件僅被編寫(xiě)一次;以及建立與所編寫(xiě)的其它模塊化部件的關(guān)系。
18.如權(quán)利要求17所述的方法,其特征在于,編寫(xiě)與所述關(guān)系類型相關(guān)聯(lián)的其它模塊化部件包括a)檢查與所述工作簿相關(guān)聯(lián)的數(shù)據(jù);b)確定所檢查的數(shù)據(jù)是否已被寫(xiě)入模塊化部件;c)當(dāng)所檢查的數(shù)據(jù)未被寫(xiě)入所述模塊化部件時(shí),編寫(xiě)所述模塊化部件以包括所檢查的數(shù)據(jù)、檢查與所述工作簿相關(guān)聯(lián)的其它數(shù)據(jù)、并重復(fù)b)到d);以及d)當(dāng)所檢查的數(shù)據(jù)已被寫(xiě)入所述模塊化部件時(shí),檢查與所述工作簿相關(guān)聯(lián)的其它數(shù)據(jù)并重復(fù)b)到d)。
19.一種包括計(jì)算機(jī)可讀介質(zhì)的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)可讀介質(zhì)上儲(chǔ)存有用于使計(jì)算機(jī)在包括模塊化部件的文件格式中表示工作簿的控制邏輯,其中,所述文件格式的模塊化部件包括被寫(xiě)入所述文件格式的每一部件,所述控制邏輯包括計(jì)算機(jī)可讀程序代碼,用于使所述計(jì)算機(jī)編寫(xiě)所述文件格式的工作簿部件;向所述工作簿部件查詢工作表關(guān)系類型;與所述工作簿部件分離地編寫(xiě)所述文件格式的工作表部件;以及建立所述工作表部件和所述工作簿部件之間的關(guān)系。
20.如權(quán)利要求19所述的計(jì)算機(jī)程序產(chǎn)品,其特征在于,所述文件格式包括以標(biāo)記語(yǔ)言書(shū)寫(xiě)的標(biāo)記文件格式和二進(jìn)制格式中的至少一個(gè)。
全文摘要
提供了用于在模塊化內(nèi)容框架中表示工作簿的文件格式、方法和計(jì)算機(jī)程序產(chǎn)品。該模塊化內(nèi)容框架可包括與模塊化部件相關(guān)聯(lián)的文件格式容器。文件格式包括通過(guò)一個(gè)或多個(gè)關(guān)系彼此相關(guān)聯(lián)的邏輯上分離的模塊化部件,其中每一模塊化部件與一關(guān)系類型相關(guān)聯(lián)。該模塊化部件包括用作工作簿的屬性的指導(dǎo)的工作簿部件,以及工作表部件,它與該工作簿部件相關(guān)聯(lián)并用于指定與該工作表部件相關(guān)聯(lián)的工作表內(nèi)的單元格的定義。該模塊化部件還可包括包含與文件格式相關(guān)聯(lián)的內(nèi)建屬性的文檔屬性部件,以及包含相關(guān)聯(lián)的縮略圖的縮略圖部件。每一模塊化部件能夠單獨(dú)地查詢、從工作簿中提取、和/或在不同的工作簿中重用。
文檔編號(hào)G06F17/30GK1794224SQ200510125058
公開(kāi)日2006年6月28日 申請(qǐng)日期2005年11月18日 優(yōu)先權(quán)日2004年12月20日
發(fā)明者C·B·羅斯切勒, S·-P·B·吳 申請(qǐng)人:微軟公司