專利名稱:在文檔中集成圖表的制作方法
在文檔中集成圖表北旦 冃爾隨著可用于在計(jì)算設(shè)備上執(zhí)行任務(wù)的應(yīng)用程序的數(shù)量的增加,對(duì)在這些應(yīng) 用程序之間的無縫用戶體驗(yàn)的期望也在增加。當(dāng)以一個(gè)應(yīng)用程序中的對(duì)象工作 時(shí),期望該同一對(duì)象當(dāng)在第二應(yīng)用程序中使用時(shí)同樣地起作用。這對(duì)于包括在 同一軟件套件中的應(yīng)用程序而言尤其如此。然而,由于許多應(yīng)用程序提供其自己對(duì)對(duì)象的支持,因此用戶體驗(yàn)經(jīng)常在 這些應(yīng)用程序之間變化。例如,在一個(gè)強(qiáng)大的圖表應(yīng)用程序中創(chuàng)建的圖表通常 在用戶試圖在演示(例如幻燈片)應(yīng)用程序中創(chuàng)建同一圖表時(shí)得不到同樣的支 持。對(duì)于某些對(duì)象,用戶可能根本無法創(chuàng)建它們。某些應(yīng)用程序允許來自一個(gè)或多個(gè)其它應(yīng)用程序的對(duì)象被嵌入在該應(yīng)用 程序所創(chuàng)建的文檔中。例如,由電子表格應(yīng)用程序生成的表格可被直接嵌入在 由文字處理程序應(yīng)用程序創(chuàng)建的文字處理程序文檔的文本之中。然而,對(duì)于每 一解決方案,在第一應(yīng)用程序中可用的所有功能在對(duì)象被嵌入在第二應(yīng)用程序 中時(shí)并不都可用。例如,用于在另一應(yīng)用程序的文檔中嵌入對(duì)象的一種標(biāo)準(zhǔn)被稱為對(duì)象鏈接和嵌入(OLE)標(biāo)準(zhǔn)。OLE是由華盛頓州雷德蒙德市的微軟⑧公司開發(fā)的復(fù)合 文檔標(biāo)準(zhǔn)。OLE允許開發(fā)者用一個(gè)應(yīng)用程序創(chuàng)建對(duì)象,隨后將它們鏈接或嵌入 在第二應(yīng)用程序中。被嵌入的對(duì)象保留其原始格式并且鏈接到創(chuàng)建它們的應(yīng)用 程序。因此,當(dāng)編輯和更新鏈接到對(duì)象的文檔時(shí),對(duì)象本身也被更新。然而, OLE具有明顯的缺點(diǎn),因?yàn)樗?jīng)常將被嵌入對(duì)象存儲(chǔ)為圖像,從而創(chuàng)建不能內(nèi) 聯(lián)編輯的大文件和對(duì)象??捎玫母鞣N對(duì)象支持解決方案導(dǎo)致與每一解決方案相 關(guān)聯(lián)的各種優(yōu)點(diǎn)與缺點(diǎn)。概述本發(fā)明的諸方面一般涉及在文檔中集成圖表。一個(gè)方面使用電子表格文檔作為在其它宿主應(yīng)用程序(host application)中使用的圖表數(shù)據(jù)的源。以前, 包括在與圖表生成無直接關(guān)系的應(yīng)用程序中的圖表遭受特征集被去除的問題。 在直接支持圖表創(chuàng)建的電子表格應(yīng)用程序中可用的許多特征不能用于在其它 宿主應(yīng)用程序中進(jìn)行圖表創(chuàng)建。例如,在電子表格應(yīng)用程序中可結(jié)合圖表使用 的某些公式和排序能力在宿主應(yīng)用程序中不可用。而且,在電子表格應(yīng)用程序 中相對(duì)直接地創(chuàng)建的某些類型的圖表在宿主應(yīng)用程序中可能是特別難以創(chuàng)建 的。本發(fā)明的一方面改變宿主應(yīng)用程序的圖表,使得這些圖表的數(shù)據(jù)從電子表 格文檔獲得。這允許宿主應(yīng)用程序中的圖表具有與電子表格應(yīng)用程序中的圖表 相同的特征集,以及在使用圖表時(shí)具有電子表格應(yīng)用程序的編輯能力。因此, 無論圖表是在另一宿主應(yīng)用程序中創(chuàng)建的還是從電子表格應(yīng)用程序嵌入的,使 用和編輯圖表保持不變,從而提供更無縫的用戶體驗(yàn)。提供本概述以便用簡(jiǎn)化形式介紹在下面的詳細(xì)描述中進(jìn)一步描述的一些 概念。本概述不是要標(biāo)識(shí)所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不是要 用于幫助確定所要求保護(hù)的主題的范圍。附圖簡(jiǎn)述參考下列附圖描述本發(fā)明的非限制性與非窮盡性實(shí)施例,在所有附圖中,相同的參考標(biāo)號(hào)指代相同的部分,除非另有說明。
圖1示出了可按照一個(gè)示例性實(shí)施例使用的示例性計(jì)算設(shè)備。圖2示出了包括在演示應(yīng)用程序中的圖表的示例性屏幕截圖。圖3示出了包括在演示應(yīng)用程序中的圖表的另一個(gè)示例性屏幕截圖。圖4示出了用于使用電子表格作為包括在宿主應(yīng)用程序中的圖表的圖表數(shù)據(jù)的源的示例性系統(tǒng)的功能圖。圖5示出了用于持久保存圖表數(shù)據(jù)的示例性文件結(jié)構(gòu)的功能圖。 圖6示出了按照本發(fā)明的一個(gè)實(shí)施例,用于在電子表格與宿主應(yīng)用之間交互以提供包括在宿主應(yīng)用程序中的圖表的數(shù)據(jù)的示例性過程的邏輯流程圖。詳細(xì)描述下面參考附圖更完整地描述本發(fā)明的實(shí)施例,這些附圖構(gòu)成本發(fā)明的一部分,并且示出用于實(shí)施本發(fā)明的具體示例性實(shí)施例。然而,各實(shí)施例可用許多 不同的形式來實(shí)現(xiàn),并且不應(yīng)解釋為受限于在此闡述的實(shí)施例;相反,提供這 些實(shí)施例以使得本公開內(nèi)容全面且完整,并且能向本領(lǐng)域的技術(shù)人員完全表達(dá) 本發(fā)明的范圍。本發(fā)明的各實(shí)施例可被實(shí)施為方法、系統(tǒng)或設(shè)備。因此,本發(fā) 明的各實(shí)施例可采用完全硬件實(shí)現(xiàn)、完全軟件實(shí)現(xiàn)或者組合了軟件和硬件方面 的實(shí)現(xiàn)的形式。因此,下面的詳細(xì)描述沒有限制的意義。本發(fā)明的各實(shí)施例的邏輯操作被實(shí)現(xiàn)為(l)運(yùn)行于計(jì)算系統(tǒng)上的計(jì)算機(jī)實(shí)現(xiàn)的步驟的序列,和/或(2)計(jì)算系統(tǒng)內(nèi)互連的機(jī)器模塊。實(shí)現(xiàn)是取決于實(shí)現(xiàn)本發(fā)明的計(jì)算系統(tǒng)的性能要求進(jìn)行的某種選擇。因此,構(gòu)成在此描述的本發(fā)明實(shí) 施例的邏輯操作可被替換地稱為操作、步驟或模塊。參考圖1,用于實(shí)現(xiàn)本發(fā)明的一個(gè)示例性系統(tǒng)包括如計(jì)算設(shè)備100等計(jì)算 設(shè)備。計(jì)算設(shè)備100可被配置為客戶機(jī)、服務(wù)器、移動(dòng)設(shè)備或任何其它計(jì)算設(shè) 備。在一非常基本的實(shí)施例中,計(jì)算設(shè)備100—般包括至少一個(gè)處理單元102 和系統(tǒng)存儲(chǔ)器104。取決于計(jì)算設(shè)備的精確配置和類型,系統(tǒng)存儲(chǔ)器104可以 是易失性(如RAM)、非易失性(如ROM,閃存等)或兩者的某種組合。系 統(tǒng)存儲(chǔ)器104 —般包括操作系統(tǒng)105、 一或多個(gè)應(yīng)用程序106、并可包括程序 數(shù)據(jù)107。在一個(gè)實(shí)施例中,應(yīng)用程序106包括用于實(shí)現(xiàn)本發(fā)明的系統(tǒng)的圖表 集成系統(tǒng)120。另外,程序數(shù)據(jù)107包括圖表數(shù)據(jù)122。該基本實(shí)施例在圖1 中由虛線108內(nèi)的那些組件示出。計(jì)算設(shè)備100可具有另外的特征或功能。例如,計(jì)算設(shè)備100也可包括另 外的數(shù)據(jù)存儲(chǔ)設(shè)備(可移動(dòng)和/或不可移動(dòng)),諸如例如磁盤、光盤或磁帶。這 些另外的存儲(chǔ)在圖1中由可移動(dòng)存儲(chǔ)109和不可移動(dòng)存儲(chǔ)110示出。計(jì)算機(jī)存 儲(chǔ)介質(zhì)可包括易失性和非易失性、可移動(dòng)與不可移動(dòng)介質(zhì),它們以存儲(chǔ)諸如計(jì) 算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術(shù)實(shí)現(xiàn)。 系統(tǒng)存儲(chǔ)器104、可移動(dòng)存儲(chǔ)109和不可移動(dòng)存儲(chǔ)110都是計(jì)算機(jī)存儲(chǔ)介質(zhì)的 示例。計(jì)算機(jī)存儲(chǔ)介質(zhì)包括但不限于,RAM、 ROM、 EEPROM、閃存或其它 存儲(chǔ)器技術(shù)、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲(chǔ)、磁帶盒、磁帶、 磁盤存儲(chǔ)或其它磁存儲(chǔ)設(shè)備、或者可用于存儲(chǔ)所需信息并可由計(jì)算設(shè)備100訪 問的任何其它介質(zhì)。任何這些計(jì)算機(jī)存儲(chǔ)介質(zhì)可以是設(shè)備100的一部分。計(jì)算設(shè)備100也可具有諸如鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備等的輸入設(shè)備112。還可包括諸如顯示器、揚(yáng)聲器、打印機(jī)等的輸出設(shè)備114。計(jì)算設(shè)備100還包含通信連接116,它允許該設(shè)備諸如通過網(wǎng)絡(luò)與其它計(jì) 算設(shè)備118通信。通信連接116是通信介質(zhì)的一個(gè)示例。通信介質(zhì)一般以諸如 載波或其它傳輸機(jī)制等已調(diào)制數(shù)據(jù)信號(hào)來體現(xiàn)計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程 序模塊或其它數(shù)據(jù),并且包括任何信息傳遞介質(zhì)。術(shù)語"已調(diào)制數(shù)據(jù)信號(hào)"指 一種信號(hào),它以將信號(hào)編碼到該信號(hào)內(nèi)的方式來設(shè)置或改變其特性。作為示例 而非限制,通信介質(zhì)包括有線介質(zhì),如有線網(wǎng)絡(luò)或直接線連接,以及無線介質(zhì), 如聲學(xué)、RF、紅外和其它無線介質(zhì)。在此使用的術(shù)語計(jì)算機(jī)可讀介質(zhì)包括存儲(chǔ) 介質(zhì)和通信介質(zhì)兩者。由計(jì)算設(shè)備100執(zhí)行的一個(gè)實(shí)施例能夠使用電子表格文檔作為包括在宿 主應(yīng)用程序的文檔中的圖表的圖表數(shù)據(jù)122的源。圖表集成應(yīng)用程序120能夠 將電子表格的圖表數(shù)據(jù)與宿主應(yīng)用程序中圖表表示集成。因此,使得由用于圖 表的電子表格提供的功能在宿主應(yīng)用程序內(nèi)可用。用戶可按照由電子表格應(yīng)用 程序提供的特征集而非受到更多限制的特征集來編輯圖表并且改變圖表的呈 現(xiàn)。除了允許此處的公開內(nèi)容和權(quán)利要求書包含各種各樣的替換實(shí)施例的更寬泛含義之外,在此且遍及權(quán)利要求書使用的下列術(shù)語一般定義如下"圖表"一般指可包括在文檔中的曲線圖、條形圖、餅圖、表圖或數(shù)據(jù)的 其它圖示。如在此使用的,不存在對(duì)可包括在特定文檔中的圖表類型的限制。"文檔"一般被定義為任何頁(yè)面、工作表或應(yīng)用程序的其它構(gòu)造,其包括 文本、圖形對(duì)象、表格、數(shù)據(jù)單元格或其它類型的數(shù)據(jù)表示。文檔的示例包括 文字處理程序文檔、電子表格、圖表、幻燈片、網(wǎng)頁(yè)、工作表、短箋、電子郵 件消息、即時(shí)消息、繪圖、示意圖、圖像以及文本和/或圖形對(duì)象的其它排列。"特征集"一般被定義為與一特定應(yīng)用程序相關(guān)聯(lián)的功能或特征的集合。 支持圖表創(chuàng)建的應(yīng)用程序的一個(gè)示例性特征集包括排序功能、對(duì)公式的支持、 對(duì)圖表類型的支持以及提供圖表操縱能力的其它功能和能力。"宿主應(yīng)用程序"一般指其中嵌入或鏈接了圖表的應(yīng)用程序。宿主應(yīng)用程 序包括該宿主應(yīng)用程序的文檔內(nèi)的圖表的可視表示。宿主應(yīng)用程序可包括演示應(yīng)用程序、文字處理程序應(yīng)用和可包括圖表的其它應(yīng)用程序。"演示應(yīng)用程序"一般指被配置為向用戶提供演示顯示的應(yīng)用程序。例如, 幻燈片放映可包括所生成的演示中的一張或多張幻燈片。這些幻燈片對(duì)應(yīng)于由 演示應(yīng)用程序產(chǎn)生的各個(gè)文檔。演示應(yīng)用程序的一個(gè)示例包括由華盛頓州雷德蒙德市的微軟⑧公司生產(chǎn)的PowerPoint 軟件程序。"電子表格" 一般被定義為包括包含數(shù)據(jù)的單元格的網(wǎng)格的文檔或數(shù)據(jù) 庫(kù)。電子表格的一個(gè)示例包括在由華盛頓州雷德蒙德市的微軟⑧公司生產(chǎn)的 ExceM)軟件程序中生成的工作表。電子表格的另一個(gè)示例包括由華盛頓州雷德 蒙德市的微軟⑧公司生產(chǎn)的Access⑧軟件程序中生成的數(shù)據(jù)網(wǎng)格。每一電子表 格與產(chǎn)生對(duì)應(yīng)于包括在該電子表格中數(shù)據(jù)的圖表的功能相關(guān)聯(lián)。"電子表格應(yīng)用程序"一般指被配置為產(chǎn)生電子表格(見上面"電子表格" 定義)的應(yīng)用程序。圖2示出了包括圖表的示例性演示應(yīng)用程序屏幕截圖。演示應(yīng)用程序200 對(duì)應(yīng)于在內(nèi)部處理對(duì)圖表數(shù)據(jù)的支持的演示應(yīng)用程序的一個(gè)先前的版本。演示 應(yīng)用程序200包括幻燈片列表域210、幻燈片域220和圖表數(shù)據(jù)域230?;脽羝斜碛?10列出可用于查看和編輯的、包括在被加載到演示應(yīng)用程 序200中的當(dāng)前演示文件中的幻燈片?;脽羝斜碛?10還包括當(dāng)前正被查看 的幻燈片的書面或可視指示?;脽羝斜韺?duì)于大多數(shù)演示應(yīng)用是共同的,并且 是本領(lǐng)域所公知的。因此,幻燈片列表域210在此不再詳細(xì)討論。幻燈片域220包括當(dāng)前正被査看的幻燈片的內(nèi)容。在本例中,幻燈片內(nèi)容 包括圖表222。圖表222被示為條形圖。當(dāng)圖表222被選中以插入到幻燈片域 220中時(shí),演示應(yīng)用程序200也啟動(dòng)圖表數(shù)據(jù)域230。圖表數(shù)據(jù)域230作為覆蓋到演示應(yīng)用程序200的窗口上的彈出窗口來提 供。圖表數(shù)據(jù)域是由演示應(yīng)用程序200提供的內(nèi)容的一部分。圖表數(shù)據(jù)域包括 數(shù)據(jù)單元格(例如232)、列或行標(biāo)簽單元格(例如234)、圖表數(shù)據(jù)單元格 (例如236)以及圖表軸標(biāo)簽單元格(例如238)。包括在圖表數(shù)據(jù)單元格中 的數(shù)據(jù)與圖表軸標(biāo)簽單元格之間的相關(guān)導(dǎo)致對(duì)圖表222內(nèi)的數(shù)據(jù)的格式化。在演示應(yīng)用程序200提供其自己的對(duì)輸入圖表數(shù)據(jù)的支持時(shí),與創(chuàng)建和編 輯圖表相關(guān)聯(lián)的功能受到限制。而且,對(duì)應(yīng)于圖表數(shù)據(jù)域230的窗口一直需要根據(jù)演示中正被查看的部分來管理定位和調(diào)整大小。圖3示出按照一個(gè)實(shí)施例的包括在演示應(yīng)用程序中圖表的另一個(gè)示例性屏幕截圖。演示應(yīng)用程序300與圖2所示的演示應(yīng)用程序200相似。演示應(yīng)用 程序300包括幻燈片列表域310和幻燈片域320。幻燈片域320還包括與圖2 所示的圖表222相似的圖表322。然而,演示應(yīng)用程序300不包括與圖表數(shù)據(jù) 域230相似的窗口或域。而是由演示應(yīng)用程序300啟動(dòng)電子表格應(yīng)用程序350 來提供圖表322的圖表數(shù)據(jù)。電子表格應(yīng)用程序350包括其中包含單元格陣列的電子表格352。這些單 元格有各種類型,包括數(shù)據(jù)單元格(例如數(shù)據(jù)單元格354)和列與行標(biāo)簽單元 格(例如列標(biāo)簽356)。在數(shù)據(jù)單元格(例如354)內(nèi)是由其所包含的數(shù)據(jù)定 義的單元格。在一個(gè)示例中,數(shù)據(jù)單元格包括對(duì)應(yīng)于諸如圖表320等圖表的數(shù) 據(jù)。 一種類型的圖表數(shù)據(jù)單元格包括圖表的值(例如值單元格360)。與圖表 相關(guān)聯(lián)的另一種類型的數(shù)據(jù)單元格包括軸標(biāo)簽,它給圖表的軸或維度加標(biāo)簽 (例如軸標(biāo)簽358)。通過按照電子表格應(yīng)用程序350提供圖表322的數(shù)據(jù), 圖表322能夠利用由電子表格應(yīng)用程序350為操縱圖表提供的全部特征集。一 旦對(duì)圖表322的編輯或操縱影響了圖表數(shù)據(jù)時(shí),就為圖表322提供電子表格應(yīng) 用程序350。用于處理對(duì)圖表數(shù)據(jù)的編輯與改變的示例性過程在下面參考圖6 更詳細(xì)地描述。通過響應(yīng)于對(duì)圖表322的改變自動(dòng)啟動(dòng)電子表格應(yīng)用程序350, 演示應(yīng)用程序300與電子表格應(yīng)用程序350之間的操作是相對(duì)無縫的。在以前 的設(shè)計(jì)中,要使用電子表格應(yīng)用程序作為圖表數(shù)據(jù)源,圖表需要首先在電子表 格中創(chuàng)建,然后復(fù)制到演示應(yīng)用程序。然而, 一旦所復(fù)制圖表到了宿主應(yīng)用程 序中,該圖表就不能利用在電子表格應(yīng)用程序中可用的全部特征集。本發(fā)明通 過相對(duì)無縫地以來自電子表格應(yīng)用程序的圖表數(shù)據(jù)作為源、允許為宿主應(yīng)用程 序中的圖表提供全部特征集來解決這些限制。盡管圖3的示例針對(duì)的是演示應(yīng)用程序中的具有由電子表格應(yīng)用程序提 供的圖表數(shù)據(jù)的圖標(biāo),但要了解,可使用應(yīng)用程序的其它組合。宿主應(yīng)用程序 不必是演示應(yīng)用程序,而可以是另一宿主應(yīng)用程序,諸如文字處理程序應(yīng)用或 可包括圖表的其它應(yīng)用程序。另外,即使圖表數(shù)據(jù)被示為由電子表格應(yīng)用程序 提供,但電子表格應(yīng)用程序也可包括其它應(yīng)用程序,諸如數(shù)據(jù)庫(kù)應(yīng)用程序或者網(wǎng)格數(shù)據(jù)應(yīng)用程序。圖4示出按照一個(gè)實(shí)施例的使用電子表格作為包括在宿主應(yīng)用程序中的圖表的圖表數(shù)據(jù)的源的一個(gè)示例性系統(tǒng)的功能圖。系統(tǒng)400包括演示應(yīng)用程序 402、文字處理應(yīng)用程序404、嵌入對(duì)象處理程序406、圖表集成應(yīng)用程序408、 數(shù)據(jù)庫(kù)/電子表格應(yīng)用程序410以及運(yùn)行對(duì)象表414。電子表格應(yīng)用程序410包 括對(duì)應(yīng)于包括在宿主應(yīng)用程序(402, 404)之一中的圖表的圖表數(shù)據(jù)412。盡 管示出兩個(gè)宿主應(yīng)用程序(402, 404),但任意數(shù)量的宿主應(yīng)用程序可與系統(tǒng) 400相關(guān)聯(lián)。嵌入對(duì)象處理程序406提供支持包括在與其它程序相關(guān)聯(lián)的宿主應(yīng)用程 序文檔中的對(duì)象的功能。在一個(gè)實(shí)施例中,嵌入對(duì)象處理程序406對(duì)應(yīng)于提供 用于將圖形對(duì)象集成在宿主應(yīng)用程序文檔內(nèi)的代碼的圖形程序。嵌入對(duì)象處理 程序406提供圖表集成應(yīng)用程序408與宿主應(yīng)用程序(402, 404)之間的接口 。 嵌入對(duì)象處理程序406將由圖表集成應(yīng)用程序408提供的指令轉(zhuǎn)換成宿主應(yīng)用 程序(402, 404)理解的指令以操縱圖形對(duì)象。在另一實(shí)施例中,嵌入對(duì)象處 理程序406沒有被包括在系統(tǒng)400中,而是由圖表集成應(yīng)用程序408提供嵌入 對(duì)象處理程序406的功能。圖表集成應(yīng)用程序408與電子表格應(yīng)用程序410通信以獲得并編輯圖表數(shù) 據(jù)412。在一個(gè)實(shí)施例中,圖表集成應(yīng)用程序408對(duì)應(yīng)于圖1中提供的圖表集 成應(yīng)用程序120。圖表集成應(yīng)用程序408被配置為將由電子表格應(yīng)用程序410 提供A々閣夷數(shù)抿412與宿豐應(yīng)用薛序404)中句,柄的閣夷同步。電子表 格應(yīng)用程序410響應(yīng)于來自圖表集成應(yīng)用程序408的請(qǐng)求組織圖表數(shù)據(jù)412, 并且通過一組COM接口 (420, 422, 424)將圖表數(shù)據(jù)412傳遞給圖表集成應(yīng) 用程序408。在一個(gè)實(shí)施例中,ChartDataSink(圖表數(shù)據(jù)宿)接口 420允許電子 表格應(yīng)用程序410向圖表集成應(yīng)用程序408通知對(duì)圖表數(shù)據(jù)412的更新并且將 這些更新推到圖表集成應(yīng)用程序412。在同一實(shí)施例中,ChartDataSink COM 接口 422允許圖表集成應(yīng)用程序408初始化電子表格應(yīng)用程序410并且將影響 圖表數(shù)據(jù)412的用戶動(dòng)作轉(zhuǎn)發(fā)給電子表格應(yīng)用程序410 。 ChartDataSourceFactory(圖表數(shù)據(jù)源工廠)COM接口 424允許圖表集成應(yīng)用程序 408獲得與ChartDataSink COM接口 420相關(guān)聯(lián)的ChartDataSource(圖表數(shù)據(jù)源)COM接口 422的實(shí)例。在相關(guān)的另一實(shí)施例中,ChartDataSink COM接口 420和ChartDataSource COM接口 422的唯一實(shí)例對(duì)于每一圖表都存在。圖表 集成應(yīng)用程序408可從運(yùn)行對(duì)象表414獲得ChartDataSourceFactory COM接口424 。電子表格應(yīng)用程序410在實(shí)例化電子表格應(yīng)用程序410時(shí)將 ChartDataSourceFactory COM接口 424記錄在運(yùn)行對(duì)象表414中。運(yùn)行對(duì)象表414是允許獨(dú)立的進(jìn)程從彼此獲得COM接口的COM系統(tǒng)組 件。運(yùn)行對(duì)象表414用于從電子表格應(yīng)用程序410取得ChartDataSourceFactory COM接口 424。提供指令給電子表格應(yīng)用程序410以創(chuàng)建ChartDataSource COM接口 422,它隨后與當(dāng)前打開的工作簿相關(guān)聯(lián),該工作簿是要從文件系統(tǒng) 打開的工作簿,或者已經(jīng)嵌入在宿主應(yīng)用程序(402, 404)的文件中的工作簿。 當(dāng)工作簿被嵌入在宿主應(yīng)用程序(402, 404)的文件中時(shí),圖表集成應(yīng)用程序 408負(fù)責(zé)用信號(hào)通知電子表格應(yīng)用程序410需要ChartDataSourceFactory COM 接口 (例如424)。電子表格應(yīng)用程序410向運(yùn)行對(duì)象表414注冊(cè) ChartDataSourceFactory COM接口 424的實(shí)例,并且圖表集成應(yīng)用程序408從 運(yùn)行對(duì)象表414檢索該接口。 一旦圖表集成應(yīng)用程序408具有 ChartDataSourceFactory COM接口 424的實(shí)例,圖表集成應(yīng)用程序408就調(diào)用 通過指定多個(gè)參數(shù)來請(qǐng)求將ChartDataSource COM接口 422的實(shí)例與一工作簿 相關(guān)聯(lián)的方法。這些參數(shù)包括將ChartDataSource COM接口 422與當(dāng)前工作簿 相關(guān)聯(lián)的信息、要用圖表集成應(yīng)用程序408提供的樣本數(shù)據(jù)填充的新工作簿、 由文件名標(biāo)識(shí)的工作簿、或者作為由電子表格應(yīng)用程序410加載的嵌入工作簿 的二進(jìn)制數(shù)據(jù)流。 一旦獲得ChartDataSourceFactory COM接口 424,該過程循 環(huán)就不需要運(yùn)行對(duì)象表414。在電子表格應(yīng)用程序410與圖表集成應(yīng)用程序408 之間的進(jìn)一步通信是通過COM接口 (420, 422, 424)來完成的。下面對(duì)圖6 的討論提供了與圖表集成應(yīng)用程序408和電子表格應(yīng)用程序410之間通信有關(guān) 的示例性過程的更詳細(xì)討論。圖5示出了按照一個(gè)實(shí)施例的用于持久保存圖表數(shù)據(jù)的示例性文件結(jié)構(gòu) 的功能圖。該具體實(shí)施例提供用于對(duì)應(yīng)于包括在演示應(yīng)用程序的演示中的圖表 的圖表數(shù)據(jù)的文件結(jié)構(gòu)。然而,其它示例可包括用于對(duì)應(yīng)于包括圖表的其它宿 主應(yīng)用程序的其它文檔的圖表數(shù)據(jù)的文件結(jié)構(gòu)。文件結(jié)構(gòu)500包括對(duì)應(yīng)于演示應(yīng)用程序的演示的演示文件502,以及對(duì)應(yīng)于電子表格應(yīng)用程序的電子表格的外部電子表格文件550。演示文件502被組織成幻燈片510、繪圖520、圖表530,并且有可能包 括嵌入的電子表格文件540?;脽羝?10包括與一特定演示相關(guān)聯(lián)的任意數(shù)量 的幻燈片(例如,512, 514)。如果繪圖數(shù)據(jù)包括在幻燈片中,則幻燈片(例 如512)與繪圖文件(例如522)相關(guān)聯(lián)。如果繪圖數(shù)據(jù)對(duì)應(yīng)于圖表,則繪圖 (例如522)還與圖表文件(例如532)相關(guān)聯(lián)。在一個(gè)實(shí)施例中,圖表文件 (例如532)包括正被使用的圖表的類型、圖表的呈現(xiàn)、圖表的格式、以及與 在幻燈片中呈現(xiàn)圖表有關(guān)的其它信息。在此實(shí)施例中,包括在圖表上的值是從 與電子表格相關(guān)聯(lián)的另一文件(例如540, 550)獲得的,但演示應(yīng)用程序確定 用于顯示該數(shù)據(jù)的格式。在另一實(shí)施例中,圖表文件(例如532)與指針更相 似,它將演示應(yīng)用程序指向包括該圖表數(shù)據(jù)的另一文件(例如540, 550)。在 此實(shí)施例中,電子表格應(yīng)用程序確定要用于圖表的值與格式兩者,并且演示應(yīng) 用程序僅負(fù)責(zé)在特定幻燈片內(nèi)顯示圖表。在演示中圖表的實(shí)際實(shí)現(xiàn)可沿與上述 實(shí)施例的濃淡度不同或者相同的線來劃分在宿主應(yīng)用程序與電子表格應(yīng)用程 序之間格式化圖表的責(zé)任。另外,可向戶提供使用演示的格式化還是使用包括 在電子表格應(yīng)用程序中數(shù)據(jù)的格式化的選擇。如所示的,圖表的數(shù)據(jù)可由嵌入在演示文件中的電子表格文件(例如540) 來提供,或者由在外部存儲(chǔ)的電子表格文件來提供。電子表格是在本地與演示 文件502存儲(chǔ)在一起還是存儲(chǔ)在外部并鏈接到演示文件502是可由用戶作出的 選擇。例如,可向用戶呈現(xiàn)一對(duì)話框窗口,它允許用戶選擇讓圖表鏈接到外部 電子表格、讓電子表格復(fù)制到演示文件、或者有可能僅檢索圖表的圖像。每一 選擇對(duì)于編輯圖表、宿主應(yīng)用程序文件的文件大小以及文件的可移植性而言都 具有優(yōu)點(diǎn)與缺點(diǎn)。圖6示出了按照一個(gè)實(shí)施例的電子表格與宿主應(yīng)用程序之間的交互以提 供包括在宿主應(yīng)用程序中的圖表的數(shù)據(jù)的示例性過程的邏輯流程圖。過程600 始于將圖表插入到宿主應(yīng)用程序文檔中并等待用戶交互。處理繼續(xù)到動(dòng)作接收 操作602。動(dòng)作接收操作602接收在圖表集成應(yīng)用程序(見圖4的408)上對(duì)圖表的中,宿主應(yīng)用程序?qū)⒂脩魟?dòng)作注冊(cè)為鍵擊、鼠標(biāo)點(diǎn)擊 或者對(duì)于宿主應(yīng)用程序的其它輸入,并將該輸入作為與宿主應(yīng)用程序文檔中的圖表有關(guān)來關(guān)聯(lián)。 一旦圖表集成應(yīng)用程序收到用戶動(dòng)作的通知,處理就繼續(xù)到電子表格需求判定操作604。電子表格需求判定操作604確定是否需要電子表格來響應(yīng)影響圖表的用 戶動(dòng)作。在一些情形中,用戶動(dòng)作可改變圖表的一部分而不影響由電子表格應(yīng) 用程序提供的圖表數(shù)據(jù)。例如,圖表在文檔內(nèi)的位置可改變。這樣的改變可被 發(fā)送到圖表集成應(yīng)用程序以進(jìn)行處理。然而,不需要對(duì)作出改變的電子表格的 訪問。如果不需要電子表格來響應(yīng)用戶動(dòng)作,則處理移動(dòng)至圖表處理操作606。圖表處理操作606在不訪問由電子表格提供的圖表數(shù)據(jù)的情況下處理用 戶動(dòng)作。在一個(gè)實(shí)施例中,在宿主應(yīng)用程序中包括用于處理對(duì)圖表的這些改變 的功能。在另一實(shí)施例中,由宿主應(yīng)用程序作出功能調(diào)用來處理對(duì)于圖表的用 戶動(dòng)作。 一旦解決了用戶動(dòng)作,過程600就結(jié)束并且處理等待下一個(gè)用戶動(dòng)作 或者繼續(xù)其它任務(wù)?;蛘撸绻枰娮颖砀駚眄憫?yīng)用戶動(dòng)作,則處理繼續(xù)至可視性判定操作 608??梢曅耘卸ú僮?08確定是否需要可視的電子表格來響應(yīng)用戶動(dòng)作。當(dāng) 用戶動(dòng)作涉及向用戶提供改變圖表數(shù)據(jù)、公式或由電子表格提供的圖表的其它 方面的機(jī)會(huì)時(shí),需要可視電子表格。當(dāng)允許用戶以電子表格格式與圖表數(shù)據(jù)交 互時(shí)需要電子表格。與此相反,用戶有可能不需要具有所啟動(dòng)的電子表格的可 視實(shí)例。在另一個(gè)實(shí)施例中,電子表格應(yīng)用程序的可視實(shí)例和電子表格應(yīng)用程 序的不可視實(shí)例與單獨(dú)的進(jìn)程相關(guān)聯(lián)。當(dāng)與電子表格應(yīng)用程序的交互正由不可 視進(jìn)程提供時(shí),用戶動(dòng)作對(duì)應(yīng)于不要求允許用戶與圖表數(shù)據(jù)交互的改變。如果 需要不可視電子表格,則處理繼續(xù)至啟動(dòng)操作610。啟動(dòng)操作610啟動(dòng)電子表格應(yīng)用程序的可視實(shí)例。在一個(gè)實(shí)施例中,電子 表格應(yīng)用程序被啟動(dòng)并且宿主應(yīng)用程序和電子表格應(yīng)用程序的視圖被"平鋪顯 示"或重合地顯示,使得兩個(gè)應(yīng)用基本上可在有限的査看區(qū)域中都被查看到。 平鋪顯示應(yīng)用程序允許在可用的顯示屏幕中查看兩者。 一旦電子表格應(yīng)用程序 被啟動(dòng),處理繼續(xù)至鏈接創(chuàng)建操作614。如果代替電子表格的可視實(shí)例而僅需要到電子表格的鏈接,則處理從可視性判定操作608繼續(xù)至鏈接確定操作612。鏈接確定操作612確定是否已經(jīng)建 立到電子表格的鏈接。例如,電子表格可被存儲(chǔ)在宿主應(yīng)用程序文件中。如果 在內(nèi)部與宿主應(yīng)用程序相關(guān)地存儲(chǔ),就不需要建立到電子表格的鏈接。與此相 反,電子表格也可在存儲(chǔ)器中與電子表格應(yīng)用程序相關(guān)聯(lián)的不同位置,或者甚 至可完全與一單獨(dú)的計(jì)算設(shè)備相關(guān)聯(lián)。然而,當(dāng)對(duì)于宿主應(yīng)用程序而言電子表 格是外部的和/或遠(yuǎn)程的時(shí)候,在包括在宿主應(yīng)用程序中的圖表與電子表格之間 已經(jīng)產(chǎn)生了鏈接。例如,以前的用戶動(dòng)作已經(jīng)建立了圖表與電子表格之間的鏈 接。因此,當(dāng)前的用戶動(dòng)作不必再次建立鏈接。如果到電子表格的鏈接尚未被 啟動(dòng),則處理繼續(xù)至鏈接創(chuàng)建操作614。鏈接創(chuàng)建操作614啟動(dòng)電子表格應(yīng)用程序與宿主應(yīng)用程序的圖表之間的 鏈接。在一個(gè)實(shí)施例中,啟動(dòng)鏈接與是否已經(jīng)啟動(dòng)電子表格的可視實(shí)例相似。 在另一實(shí)施例中,按照允許圖表與電子表格之間使用通用傳輸協(xié)議的COM接 口生成鏈接。 一旦創(chuàng)建了鏈接,處理就繼續(xù)至發(fā)送動(dòng)作操作616。無論鏈接是先前從鏈接確定操作612可獲得的,還是按照鏈接創(chuàng)建過程 614新創(chuàng)建的, 一旦建立了鏈接,圖表集成應(yīng)用程序?qū)⒂脩魟?dòng)作的通知發(fā)送到 電子表格應(yīng)用程序。在電子表格收到通知后,處理繼續(xù)至改變確定操作618。改變確定操作618從用戶動(dòng)作中發(fā)現(xiàn)用戶動(dòng)作是否影響對(duì)圖表數(shù)據(jù)的改 變。有可能的是,圖表數(shù)據(jù)沒有被用戶動(dòng)作實(shí)際改變。例如,用戶可能已經(jīng)選 擇查看圖表數(shù)據(jù)。在此例中,啟動(dòng)電子表格應(yīng)用程序的可視實(shí)例并且創(chuàng)建圖表 與電子表格之間的鏈接并且所請(qǐng)求的操作可完成。如果數(shù)據(jù)未被用戶動(dòng)作改 變,則過程600結(jié)束并且處理等待下一個(gè)用戶動(dòng)作或者繼續(xù)至其它任務(wù)。相反,如果用戶動(dòng)作更改了圖表數(shù)據(jù),則處理繼續(xù)至數(shù)據(jù)改變操作620。 數(shù)據(jù)改變操作620隨后中繼回?cái)?shù)據(jù)被改變的圖表集成應(yīng)用程序。 一旦收到該數(shù) 據(jù)改變消息,處理繼續(xù)至更新判定操作622。更新判定操作622確定對(duì)圖表的更新是否因發(fā)生在圖表數(shù)據(jù)中的改變而 成為必要的。在一個(gè)實(shí)施例中,更新對(duì)應(yīng)于圖表內(nèi)圖表數(shù)據(jù)的表示的刷新。如 果更新不是必要的,則過程600結(jié)束并且處理等待下一個(gè)用戶動(dòng)作或者繼續(xù)其 它任務(wù)。然而,如果更新是必要的,則處理繼續(xù)至更新請(qǐng)求操作624。更新請(qǐng)求操作624向電子表格應(yīng)用程序請(qǐng)求圖表數(shù)據(jù)的更新。在一個(gè)實(shí)施例中,更新請(qǐng)求被配置為對(duì)由電子表格應(yīng)用程序提供的全部圖表數(shù)據(jù)集的請(qǐng) 求。在另一實(shí)施例中,更新請(qǐng)求是針對(duì)已經(jīng)改變的圖標(biāo)數(shù)據(jù)的任何部分而非整 個(gè)圖表數(shù)據(jù)文件。
一旦發(fā)送更新請(qǐng)求,處理就繼續(xù)至更新接收操作626。更新接收操作626接收?qǐng)D表數(shù)據(jù)的更新并且將該更新應(yīng)用于宿主應(yīng)用程 序中的圖表。在一個(gè)實(shí)施例中,所更新的內(nèi)容僅刷新自從上次更新或創(chuàng)建圖表 以來已改變的圖表部分。在另一實(shí)施例中,響應(yīng)于請(qǐng)求,更新用對(duì)應(yīng)于所提供 的最新近的圖表數(shù)據(jù)的新圖表來替換現(xiàn)有的圖表。 一旦更新了圖表,過程600 就結(jié)束并且處理等待下一個(gè)用戶動(dòng)作或者繼續(xù)其它任務(wù)。盡管已經(jīng)用專用于結(jié)構(gòu)特征和/或方法步驟的語言描述了本發(fā)明,但要理 解,在所附權(quán)利要求書中定義的本發(fā)明不必受限于所述的具體特征或步驟。相 反,這些具體特征和步驟是作為實(shí)現(xiàn)所要求保護(hù)的本發(fā)明的形式而公開的。由 于可在不脫離本發(fā)明的精神與范圍的情況下作出本發(fā)明的許多實(shí)施例,因此本 發(fā)明由所附權(quán)利要求書來確定。
權(quán)利要求
1.一種用于管理和編輯在宿主應(yīng)用程序中呈現(xiàn)的圖表的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述方法包括提供用于在一獨(dú)立應(yīng)用程序中編輯對(duì)應(yīng)于所述圖表的數(shù)據(jù)的功能,其中所述數(shù)據(jù)在所述獨(dú)立應(yīng)用程序中的呈現(xiàn)不同于所述圖表在所述宿主應(yīng)用程序中的呈現(xiàn);以及將發(fā)生在所述獨(dú)立應(yīng)用程序中的對(duì)所述數(shù)據(jù)的改變傳遞至所述宿主應(yīng)用程序,其中對(duì)所述數(shù)據(jù)的改變被反映在所述圖表在所述宿主應(yīng)用程序中的呈現(xiàn)中。
2. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括接收用 戶動(dòng)作的通知,其中所述用戶動(dòng)作的通知是在所述用戶動(dòng)作導(dǎo)致對(duì)所述圖表的 改變時(shí)接收的。
3. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括當(dāng)對(duì)所 述圖表的改變不影響所述數(shù)據(jù)時(shí),在所述宿主應(yīng)用程序內(nèi)處理對(duì)所述圖表的改變。
4. 如權(quán)利要求2所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括當(dāng)對(duì)所 述圖表的改變影響所述數(shù)據(jù)時(shí),將對(duì)所述圖表的改變傳遞至所述獨(dú)立應(yīng)用。
5. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述提供用于 編輯對(duì)應(yīng)于所述圖表的數(shù)據(jù)的功能還包括,當(dāng)作出需要所述獨(dú)立應(yīng)用程序的可 視實(shí)例的判斷時(shí),實(shí)例化所述獨(dú)立應(yīng)用程序的可視實(shí)例。
6. 如權(quán)利要求5所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述獨(dú)立應(yīng)用 程序的可視實(shí)例是在顯示器中與所述宿主應(yīng)用程序的可視實(shí)例重合地提供的。
7. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述提供用于 編輯對(duì)應(yīng)于所述圖表的數(shù)據(jù)的功能還包括,當(dāng)作出不需要所述獨(dú)立應(yīng)用程序的 可視實(shí)例的判斷時(shí),實(shí)例化所述獨(dú)立應(yīng)用程序的不可視實(shí)例。
8. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括在所述 宿主應(yīng)用程序與所述獨(dú)立應(yīng)用程序之間的通信之前,在所述宿主應(yīng)用程序與所 述獨(dú)立應(yīng)用程序之間創(chuàng)建鏈接。
9. 如權(quán)利要求8所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述鏈接對(duì)應(yīng) 于用于實(shí)現(xiàn)應(yīng)用程序之間的通信的至少一個(gè)COM接口 。
10. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,還包括當(dāng)在所 述宿主應(yīng)用程序中編輯所述圖表時(shí)以及當(dāng)在所述獨(dú)立應(yīng)用程序中編輯所述數(shù) 據(jù)時(shí),用所述獨(dú)立應(yīng)用程序改變對(duì)應(yīng)于所述圖表的數(shù)據(jù)。
11. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述獨(dú)立應(yīng)用 程序?qū)?yīng)于電子表格應(yīng)用。
12. 如權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)的方法,其特征在于,所述將發(fā)生在 所述獨(dú)立應(yīng)用程序中的對(duì)所述數(shù)據(jù)的改變傳遞至所述宿主應(yīng)用程序還包括按 照?qǐng)D表集成應(yīng)用程序處理所述傳遞。
13. —種具有存儲(chǔ)在其上的、當(dāng)被執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1所述的計(jì)算機(jī) 實(shí)現(xiàn)的方法的指令的計(jì)算機(jī)可讀介質(zhì)。
14. 一種系統(tǒng),包括宿主應(yīng)用程序,其中所述宿主應(yīng)用程序包括在宿主應(yīng)用程序文檔內(nèi)的圖表 的呈現(xiàn);電子表格應(yīng)用程序,其中所述電子表格應(yīng)用程序被配置為顯示對(duì)應(yīng)于包括 在所述宿主應(yīng)用程序文檔內(nèi)的所述圖表的圖表數(shù)據(jù)的電子表格;以及圖表集成應(yīng)用程序,它被配置為管理包括在所述宿主應(yīng)用程序文檔內(nèi)的圖 表與在所述電子表格中提供的圖表數(shù)據(jù)的集成。
15. 如權(quán)利要求14所述的系統(tǒng),其特征在于,所述圖表集成應(yīng)用程序通 過至少一個(gè)COM接口與所述電子表格應(yīng)用程序通信。
16. 如權(quán)利要求15所述的系統(tǒng),其特征在于,還包括運(yùn)行對(duì)象表,其中 存儲(chǔ)所述至少一個(gè)COM接口之一,使得其它COM接口相互關(guān)聯(lián),從而一特定圖表與一特定的圖表數(shù)據(jù)集相關(guān)聯(lián)。
17. 如權(quán)利要求14所述的系統(tǒng),其特征在于,還包括嵌入對(duì)象處理程序, 它被配置為與所述圖表與所述圖表數(shù)據(jù)的集成分開地處理對(duì)所述圖表的顯示。
18. 如權(quán)利要求14所述的系統(tǒng),其特征在于,還包括結(jié)構(gòu)化所述圖表在 所述宿主應(yīng)用程序內(nèi)的存儲(chǔ),以當(dāng)所述電子表格屬于嵌入的電子表格文件和外 部電子表格文件之一時(shí),包括所述圖表與所述電子表格之間的鏈接。
19. 一種具有存儲(chǔ)在其上的、當(dāng)被執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求14所述的系統(tǒng) 的指令的計(jì)算機(jī)可讀介質(zhì)。
20. —種其上存儲(chǔ)有用于管理和編輯在宿主應(yīng)用程序中呈現(xiàn)的圖表的計(jì) 算機(jī)可執(zhí)行指令的計(jì)算機(jī)存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可執(zhí)行指令包括接收與所述圖表相關(guān)聯(lián)的用戶動(dòng)作;按照所述用戶動(dòng)作確定是否需要電子表格;確定是否需要所述電子表格的可視實(shí)例來處理所述用戶動(dòng)作;生成所述宿主應(yīng)用程序與所述電子表格之間的鏈接;將所述用戶動(dòng)作發(fā)送到所述電子表格;確定圖表數(shù)據(jù)是否改變;以及基于所述改變確定是否需要更新。
全文摘要
在宿主應(yīng)用程序中呈現(xiàn)圖表。該圖表是通過將對(duì)應(yīng)于該圖表的數(shù)據(jù)傳遞至一獨(dú)立應(yīng)用程序并且提供用于在該獨(dú)立應(yīng)用程序中編輯數(shù)據(jù)的功能來管理的。數(shù)據(jù)在該獨(dú)立應(yīng)用中的呈現(xiàn)與圖表在宿主應(yīng)用中的呈現(xiàn)不同。當(dāng)在獨(dú)立應(yīng)用程序中編輯該數(shù)據(jù)時(shí),對(duì)該數(shù)據(jù)的改變被傳遞至宿主應(yīng)用程序。所傳遞的對(duì)該數(shù)據(jù)的改變被反映在該圖表在宿主應(yīng)用程序中的呈現(xiàn)中。
文檔編號(hào)G06F17/00GK101263488SQ200680033763
公開日2008年9月10日 申請(qǐng)日期2006年9月1日 優(yōu)先權(quán)日2005年9月15日
發(fā)明者D·P·考瑞, K·J·萊恩齊 申請(qǐng)人:微軟公司