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