Office (2007) Open XML 文件格式簡(jiǎn)介
發(fā)布日期: 2007-07-06 | 更新日期: 2007-07-06
Frank Rice, Microsoft Corporation
學(xué)習(xí)Office Open XML格式的優(yōu)勢(shì)。用戶可以在Office應(yīng)用程序和企業(yè)系統(tǒng)之間使用XML和ZIP技術(shù)來(lái)交換數(shù)據(jù)。文檔是全局可以訪問(wèn)的。并且,您還可以減少文件損壞的風(fēng)險(xiǎn)。
適用于: 2007 Microsoft Office 套件,Microsoft Office Excel 2007,Microsoft Office PowerPoint 2007,Microsoft Office Word 2007
本頁(yè)內(nèi)容
Office Open XML 文件格式簡(jiǎn)介
隨著20世紀(jì)90年代XML的出現(xiàn),企業(yè)計(jì)算客戶開始逐漸認(rèn)識(shí)到,在他們所依賴的計(jì)算機(jī)產(chǎn)品和應(yīng)用中采用開放的格式和標(biāo)準(zhǔn)所帶來(lái)的商業(yè)價(jià)值。IT專業(yè)人員將從通用的數(shù)據(jù)格式中受益匪淺,這種格式可能是XML,因?yàn)樗鼡碛斜粦?yīng)用程序、平臺(tái)和Internet瀏覽器讀取的能力。
同樣,隨著在Microsoft Office 2000中對(duì)于XML格式的支持與采用,開發(fā)人員開始認(rèn)識(shí)到,他們需要將以前的Microsoft Office版本中的二進(jìn)制文件格式轉(zhuǎn)換為XML格式。二進(jìn)制文件(.doc,.dot,.xls,以及.ppt文件)在過(guò)去幾年中一直肩負(fù)著存儲(chǔ)和轉(zhuǎn)換數(shù)據(jù)的重任,而現(xiàn)在它們無(wú)法滿足新的市場(chǎng)需求的挑戰(zhàn),其中包括輕松地在異構(gòu)應(yīng)用之間傳遞數(shù)據(jù),以及允許用戶從這些數(shù)據(jù)中搜集商業(yè)信息。
2007 Microsoft Office system為Microsoft Office Excel 2007,Microsoft Office Word 2007,和Microsoft Office PowerPoint 2007采用了基于XML的文件格式,從而延續(xù)了這種轉(zhuǎn)移。新的文件格式,稱為Office Open XML格式,解決了上述市場(chǎng)需求的問(wèn)題,同時(shí)改變了您基于Microsoft Office文檔建立解決方案的方式。
新的格式增強(qiáng)了文件與數(shù)據(jù)的管理能力,數(shù)據(jù)恢復(fù)能力,以及與業(yè)務(wù)線系統(tǒng)的互操作能力。它們是對(duì)早期版本的二進(jìn)制文件的擴(kuò)展。任何支持XML的應(yīng)用程序都可以訪問(wèn)新文件格式當(dāng)中的數(shù)據(jù),并與之協(xié)同工作。這些應(yīng)用程序并不需要成為Microsoft Office system或Microsoft產(chǎn)品的一部分。用戶也可以使用標(biāo)準(zhǔn)的轉(zhuǎn)換來(lái)提取或重新組織數(shù)據(jù)。另外,有關(guān)安全性的擔(dān)憂也大大的降低,因?yàn)樾畔⑹谴鎯?chǔ)在XML當(dāng)中的,它從本質(zhì)上來(lái)講都是純文本的。因此,數(shù)據(jù)可以沒(méi)有任何障礙地通過(guò)企業(yè)防火墻進(jìn)行傳遞。
注意:
不要將Office Open XML格式與Microsoft Windows XML Paper Specification格式相混淆。Office Open XML格式使用Open Packaging Conventions,XML Paper Specification (XPS)也使用它。但是,這兩種格式在許多重要的方面是不同的。XPS是一個(gè)頁(yè)面內(nèi)的,固定的文檔格式,它是在Microsoft Windows Vista操作系統(tǒng)當(dāng)中所引入的。而Office Open XML格式是面向Office Word 2007,Office Excel 2007,和Office PowerPoint 2007的完全可編輯的文件格式。雖然它們?cè)赬ML和ZIP壓縮的使用方面有很多相似的地方,但是它們?cè)谖募袷降脑O(shè)計(jì)和使用目的上還是有著很大的不同。
新的文件格式應(yīng)用場(chǎng)景
Office Open XML文件格式改變了客戶處理數(shù)據(jù)的方式。對(duì)于下面的一些場(chǎng)景,新的文件格式使之變?yōu)榭赡埽?/p>
• |
一個(gè)服務(wù)器端的過(guò)程可以從一個(gè)ZIP壓縮包中讀取其中一項(xiàng),而無(wú)需將它們所有的內(nèi)容解壓。例如,您可以只提取文檔的數(shù)據(jù)中包含的XML文件,而不需要打開包含文檔的格式、屬性和其它輔助信息的文件。
|
• |
在更多場(chǎng)景中,新的文件容器對(duì)于用戶來(lái)說(shuō)是透明的。它看上去就像一個(gè)傳統(tǒng)的二進(jìn)制文檔文件。但是,新的XML格式文檔是經(jīng)過(guò)壓縮的,所以更小,從而也更便于在其它用戶之間通過(guò)電子郵件或其它方式進(jìn)行發(fā)送。
|
• |
殺毒軟件和服務(wù)器應(yīng)用程序都可以更加方便的提取容器里的內(nèi)容,從而直接查看影響的項(xiàng),而不需要破壞整個(gè)容器或者里面的內(nèi)容。
|
• |
文件可以以新的文件格式保存,而不包含可執(zhí)行的宏代碼。(如果希望保存的話,可以選擇啟用宏的文件格式,相關(guān)內(nèi)容會(huì)在本文的后面進(jìn)行討論。)因此,它們可以被認(rèn)為是十分安全的,并且可以通過(guò)防火墻進(jìn)行傳輸,或者通過(guò)電子郵件進(jìn)行發(fā)送,而不需要考慮安全性的問(wèn)題。這種行為是由Microsoft Office應(yīng)用程序所強(qiáng)制的。如果一個(gè)宏被添加到了一個(gè)Office Open XML格式的文件當(dāng)中,那么Office將不允許這種文檔的打開。
注意:
一些ZIP應(yīng)用程序允許你創(chuàng)建加密的文件。新的文件格式不能創(chuàng)建加密的文件。如果你企圖讀取一個(gè)加密的文件,那么它將會(huì)停止文件的讀取并返回一個(gè)錯(cuò)誤。
|
• |
如果容器中的一項(xiàng)損壞了,那么其它的項(xiàng)還是可用的。例如,如果一個(gè)用戶嘗試打開一個(gè)損壞了的磁盤上的損壞了的文件,那么Office文件恢復(fù)機(jī)制將重新建立中心目錄,并完全恢復(fù)文件的內(nèi)容。
|
• |
Office的開發(fā)人員可以使用Microsoft WinFX應(yīng)用程序編程接口(API)來(lái)創(chuàng)建一個(gè)有效的XPS文件。這些API可以幫助你建立解決方案,并與新的文件格式進(jìn)行交互。如果一個(gè)由其它ZIP應(yīng)用程序創(chuàng)建的ZIP壓縮包沒(méi)有使用特定的ZIP功能,那么Office的開發(fā)人員也可以使用API來(lái)打開它。
注意:
Microsoft Office創(chuàng)建的文件符合Open Packaging Conventions,所以WinFX API可以進(jìn)行讀取,相反的,WinFX也可以創(chuàng)建一些包,允許您使用Microsoft Office 應(yīng)用程序來(lái)打開它們。WinFX API可以與Microsoft Windows的以前版本協(xié)同工作,包括:Microsoft Windows Vista,Microsoft Windows Server 2003,和Microsoft Windows XP。另外,轉(zhuǎn)換器對(duì)于Microsoft Office 2000,Microsoft Office XP,和Microsoft Office 2003版本也是可用的。
|
新的文件格式也改變了Office用戶使用那些用來(lái)處理日常事務(wù)的應(yīng)用程序的方式,下面的場(chǎng)景描述了一些新的格式所帶來(lái)的工作方式上的改變,這些任務(wù)都是通常使用2007 Office來(lái)完成的:
• |
Howard,是一個(gè)好奇心很強(qiáng)的用戶,他發(fā)現(xiàn)2007 Office版本中包含的新的文件格式是一個(gè)ZIP文件。Howard希望自己親自看一看,因此他使用一個(gè)ZIP應(yīng)用程序打開了一個(gè)在Word 2007中創(chuàng)建的文檔。它看到了一些文件,好像都是XML文檔的內(nèi)容,還有一些圖片正是他在原始的文檔中看到過(guò)的圖片。于是,好奇的Howard在記事本中打開了一個(gè)XML文件,想看看Word生成的XML文件的格式是什么樣的。在了解了壓縮包中的文件結(jié)構(gòu)后,他關(guān)閉了記事本和ZIP應(yīng)用程序,重新在Word中打開文件并繼續(xù)他的文檔處理工作。
|
• |
Jan需要改變她的Word 2007文檔的一個(gè)文檔屬性。她在一個(gè)ZIP應(yīng)用程序中打開了新的格式文件,它提取了其中包含文檔屬性的XML項(xiàng),做出了一些更改,然后又把這一項(xiàng)添加回原來(lái)的容器,然后保存并關(guān)閉容器。然后,她又在Word中打開了文檔,她發(fā)現(xiàn)所有的內(nèi)容都沒(méi)有改變,而只有那么需要改變的屬性被她修改了。
|
• |
一個(gè)顧問(wèn)公司的logo需要進(jìn)行改變,從而反應(yīng)他們的新目標(biāo)。IT部門接到了這個(gè)改變成千上萬(wàn)的文件中所有l(wèi)ogo的任務(wù),這些文檔都被保存在一個(gè)服務(wù)器當(dāng)中。在以前版本的Microsoft Office應(yīng)用程序中,他們必須單獨(dú)打開每個(gè)文檔,刪除原有的logo,并且粘貼新的logo,或者創(chuàng)建并且測(cè)試一個(gè)相當(dāng)復(fù)雜的應(yīng)用程序,來(lái)自動(dòng)的執(zhí)行這個(gè)任務(wù)。通過(guò)新的文件格式,IT部門創(chuàng)建一個(gè)批處理過(guò)程來(lái)瀏覽文件的格式,并且在meida目錄中定位圖片的位置(這對(duì)于每個(gè)文檔都是一樣的),并且替換為新的圖片。現(xiàn)在,當(dāng)打開新的文檔后,新的logo就自動(dòng)的顯示出來(lái)了。
|
• |
一個(gè)法律公司必須保護(hù)客戶的機(jī)密數(shù)據(jù),以及他們自己的數(shù)據(jù)。基于標(biāo)準(zhǔn)的實(shí)踐,公司了解到創(chuàng)建使用Word所創(chuàng)建的一些文檔存儲(chǔ)了許多屬性 - 有些是可見的,而有些則是在文檔中不可見的。其中一些屬性可能會(huì)包含客戶的敏感信息或者企業(yè)的機(jī)密信息。通過(guò)不斷的嘗試和失敗。公司創(chuàng)建一個(gè)程序來(lái)刪除這些信息。但是,這個(gè)程序非常耗時(shí),并且因?yàn)樗?dú)立于用戶,所以經(jīng)常會(huì)出現(xiàn)錯(cuò)誤。通過(guò)使用新的文件格式,IT部門的開發(fā)人員開發(fā)了一個(gè)簡(jiǎn)單的批處理程序,它在文檔的壓縮包中瀏覽整個(gè)目錄結(jié)構(gòu)從而刪除指定的部件。公司現(xiàn)在可以保護(hù)所有的客戶敏感信息和機(jī)密信息,并將它們從文檔中刪除掉。
|
• |
Denise正在對(duì)她的碩士學(xué)位的畢業(yè)論文做出最后的修改。在添加完參考文獻(xiàn)后,它準(zhǔn)備進(jìn)行最后的保存。這時(shí),恐怖的事情發(fā)生了,在保存文檔的時(shí)候發(fā)生了意外停止,并且她收到了文檔可能損壞的消息。在她就要崩潰的時(shí)候,她突然想到她使用的是新的文件格式。于是,她將文本導(dǎo)出到一個(gè)新的文檔中,重新附加圖片,并且引入格式和樣式部分,從而成功的重新構(gòu)造文檔。然后,她保存了新的文檔。
|
• |
Elizabeth是一個(gè)Windows 2000用戶,它正在使用Office 2000,其中安裝了轉(zhuǎn)換器來(lái)打開2007 Office的文檔。她可以打開了一個(gè)Word XML格式的文檔。另外,她可以編輯文檔,并且重新將它保存為新的文檔格式,因?yàn)檗D(zhuǎn)換器提供了打開和保存的支持。
|
新的文件格式的優(yōu)勢(shì)
新的Office Open XML格式帶來(lái)了一系列的優(yōu)勢(shì),它不但可以幫助開發(fā)人員建立解決方案,而且可以幫助最終用戶和所以規(guī)模的企業(yè)。
下面列出了一些Office Open XML格式所帶來(lái)的總體上的優(yōu)勢(shì):
• |
簡(jiǎn)單將商業(yè)信息與文檔相集成。Office Open XML格式允許快速地從數(shù)據(jù)源創(chuàng)建文檔,加速文檔的裝配件,數(shù)據(jù)挖掘和內(nèi)容的重用。Office應(yīng)用程序和企業(yè)業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)交換得到了簡(jiǎn)化。另外,您可以更改Office文檔中的信息,或者使用非Office應(yīng)用程序通過(guò)文檔容器的方式來(lái)創(chuàng)建文檔。企業(yè)員工可以在所有支持XML讀寫的應(yīng)用程序當(dāng)中,通過(guò)更加快速準(zhǔn)確地發(fā)布、搜索、和重用信息,從而提高他們的生產(chǎn)效率。
|
• |
開放并且是免稅的。Office Open XML格式是基于XML和ZIP技術(shù)的,因此它們可以隨便地使用。格式和架構(gòu)的詳細(xì)標(biāo)準(zhǔn)說(shuō)明將會(huì)發(fā)布出來(lái),并且會(huì)處于與現(xiàn)在已經(jīng)存在的Microsoft Office 2003引用的架構(gòu)相同的免稅條約下,并且它是開放使用的,可以用于生產(chǎn)用途。
|
• |
互操作性。Office Open XML格式是以工業(yè)標(biāo)準(zhǔn)的XML為核心的,Microsoft Office應(yīng)用程序與企業(yè)業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)交換得到了簡(jiǎn)化。無(wú)需訪問(wèn)Office應(yīng)用程序,解決方案就可以更改Office文檔當(dāng)中的信息,或者使用標(biāo)準(zhǔn)的處理XML的工具和技術(shù)來(lái)創(chuàng)建文檔。新的格式允許您構(gòu)建文檔的存檔,而無(wú)需使用Office的代碼。
|
• |
健壯性。Office Open XML格式被設(shè)計(jì)為比二進(jìn)制格式更加健壯,而且因此可以幫助降低由于文件損壞所帶來(lái)的信息丟失的風(fēng)險(xiǎn)。即使在Office外面對(duì)于文檔的修改和創(chuàng)建也不會(huì)對(duì)文檔造成過(guò)多的損壞,因此使用新的文件格式,Office應(yīng)用程序被設(shè)計(jì)為使用增強(qiáng)的可靠性來(lái)恢復(fù)文檔。隨著越來(lái)越多的文檔穿梭與電子郵件的附加或可移動(dòng)的存儲(chǔ)設(shè)備之間,網(wǎng)絡(luò)或存儲(chǔ)設(shè)備的損壞增加了文檔損壞的可能性。
新的文件格式通過(guò)將文檔在文件包中進(jìn)行分段單獨(dú)的存儲(chǔ),增強(qiáng)了數(shù)據(jù)恢復(fù)的能力。這將大大的節(jié)省企業(yè)用于恢復(fù)數(shù)據(jù)丟失所花費(fèi)的大量資金和時(shí)間。當(dāng)一個(gè)文件組件損壞時(shí),文件中的剩余部分還可以在應(yīng)用程序中打開。例如,如果一幅圖表被損壞了,這也并不能阻止客戶打開文檔中的其它部分,當(dāng)然不包括圖表。另外,Office應(yīng)用程序可以檢測(cè)這些問(wèn)題,并且在打開文檔的時(shí)候嘗試修復(fù)它,恢復(fù)文檔正確的數(shù)據(jù)結(jié)構(gòu)。
|
• |
高效性。Office Open XML格式使用ZIP和壓縮技術(shù)來(lái)存儲(chǔ)文檔。這種新格式的一個(gè)巨大的優(yōu)勢(shì)就在于它的文件大小非常小 - 最大的壓縮比可以達(dá)到原來(lái)二進(jìn)制文件的百分之75。這是使用XML和ZIP技術(shù)結(jié)合進(jìn)行文件存儲(chǔ)的一大優(yōu)勢(shì)。因?yàn)閄ML是一個(gè)基于文本的格式,所以壓縮的比率非常的好,而且ZIP容器支持內(nèi)容的壓縮,所以用戶可以大大的減小文件的尺寸。文件壓縮的類型提供了潛在的成本節(jié)約,因?yàn)樗鼫p少了存儲(chǔ)文件所需的磁盤容量,并且減少了通過(guò)電子郵件、網(wǎng)絡(luò)和Web進(jìn)行文件傳輸所需的帶寬。
|
• |
安全性。Office Open XML的開放性使得它更加的安全。您可以保密的共享文檔,因?yàn)槟梢院?jiǎn)單的確認(rèn)并刪除一些個(gè)人信息或者是商業(yè)機(jī)密信息,例如用戶名、注釋和文件路徑。類似的,你可以確定文件包含的內(nèi)容,例如OLE對(duì)象或者M(jìn)icrosoft Visual Basic for Applications (VBA)代碼,從而進(jìn)行特殊的處理。文件格式也可以幫助提高安全性,防止文檔中保存嵌入的代碼或宏。默認(rèn)情況下,新的Word 2007,Excel 2007和PowerPoint 2007的文件格式不包含嵌入的可執(zhí)行代碼。因此,如何一個(gè)人發(fā)送了一封電子郵件,其中包含了一個(gè)Word文檔作為附件,他或她可以打開文檔并且不會(huì)執(zhí)行任何潛在的有害可執(zhí)行代碼。Office Open XML格式包含一種特殊用途的格式,它擁有一個(gè)單獨(dú)的擴(kuò)展名,其中可以包括嵌入的代碼,這樣就允許IT員工快速的判斷文件中是否包含代碼。
|
• |
向后兼容性。2007 Microsoft Office system是向后兼容的,它可以兼容早期的版本:Microsoft Office 2000,Microsoft Office XP,和Microsoft Office 2003.這些版本的用戶可以采用新的格式,或者繼續(xù)使用現(xiàn)有的文件格式。特別地,他們可以繼續(xù)使用原有的.doc,.xls,和.ppt的二進(jìn)制格式的文件,它們與2007的文件格式是完全兼容的。早期Office版本的用戶可以下載一個(gè)免費(fèi)的更新,它允許您在他們?cè)缙诘陌姹局写蜷_和編輯這種新格式的文件。那些安裝2007 Office版本的用戶可以將默認(rèn)的文件格式設(shè)定為他們需要的一種格式。這樣可以幫助確保用戶繼續(xù)與基于早期版本的第三方解決方案協(xié)同工作,并且與他們的同事、提供商、客戶和其它已經(jīng)升級(jí)的用戶協(xié)同工作。
|
Office Open XML 格式的術(shù)語(yǔ)列表
下面的列表定義了這篇文章和相關(guān)內(nèi)容中使用的術(shù)語(yǔ):
• |
API 一系列的功能或方法,用來(lái)訪問(wèn)軟件的功能。API是應(yīng)用程序接口(Application Programming Interface)的簡(jiǎn)寫。
|
• |
轉(zhuǎn)換器(Converters) 一些免費(fèi)的工具,可以在以前的Office版本中打開以O(shè)ffice Open XML格式創(chuàng)建的文件。
注意:
轉(zhuǎn)換器可以讀取或編輯文檔,并且可以向文檔中應(yīng)用信息權(quán)限管理(IRM)保護(hù)。它可以繼續(xù)保護(hù)IRM信息,而與接收者是使用2007 Office版本還是原有的版本無(wú)關(guān)。
|
• |
向前兼容性。早期的應(yīng)用程序版本可以打開后面版本的文檔,并且可以忽略那些在早期版本中沒(méi)有實(shí)現(xiàn)的功能。例如,Word 2003就是與Word 2007向前兼容的,它可以使用一個(gè)轉(zhuǎn)換器成功的打開Word 2007文件。
|
• |
Office Open XML格式。一種構(gòu)建塊及關(guān)系的結(jié)構(gòu),用來(lái)組織、打包、分發(fā),并展現(xiàn)以文檔為中心的內(nèi)容。這些構(gòu)建塊定義了一個(gè)文件格式與平臺(tái)獨(dú)立的框架,這允許軟件應(yīng)用程序可靠并一致地生成,交換,并顯示文檔。
|
• |
包。ZIP容器,它包含了組成文件的組件(部件),在Open Packaging Conventions細(xì)則中定義。
|
• |
部件。對(duì)應(yīng)于包中一個(gè)文件。例如,如果一個(gè)用戶雙擊一個(gè)Excel 2007文件,并且選擇提取它,他或她將可以看到這些文件,例如一個(gè)Workbook.xml文件和幾個(gè)sheetn.xml文件。其中每個(gè)文件都是這個(gè)包的一部分。
|
• |
關(guān)系。指定部件的集合在一個(gè)文檔中如何綁定在一起的方法。這種方法指定了一個(gè)源部件和一個(gè)目標(biāo)部件之間的連接。關(guān)系也是存儲(chǔ)在文檔包的XML部件當(dāng)中的(例如,/_rels/.rels)。
|
• |
XML。擴(kuò)展標(biāo)記語(yǔ)言(XML)是一種簡(jiǎn)單,靈活的文本格式,用做電子發(fā)布以及Internet和其它地方進(jìn)行廣泛的數(shù)據(jù)交換。
|
• |
ZIP。一種工業(yè)標(biāo)準(zhǔn)的壓縮存檔格式,用來(lái)在計(jì)算機(jī)之間,使用電子郵件或者通過(guò)Internet存儲(chǔ)和轉(zhuǎn)換文件。
|
Office XML 格式的結(jié)構(gòu)
新的文件格式的容器是基于簡(jiǎn)單的分部分的壓縮的ZIP文件格式。在新的Office Open XML格式的核心使用一些XML的引用架構(gòu)和一個(gè)ZIP容器。每個(gè)文件都是由一些部件的集合組成的;這個(gè)集合定義了文檔。
文檔部件是存儲(chǔ)在容器文件當(dāng)中,或者存儲(chǔ)在基于工業(yè)標(biāo)準(zhǔn)的ZIP格式的包中。許多部件都是用來(lái)描述應(yīng)用程序數(shù)據(jù),元數(shù)據(jù),以及自定義數(shù)據(jù)的XML數(shù)據(jù),它們都是存儲(chǔ)在容器文件當(dāng)中的。其它非XML部件,也可以包含在容器包當(dāng)中,其中包括在文檔中表示圖片或者嵌入的OLE對(duì)象的二進(jìn)制文件。另外,還有一些關(guān)系部件,它們指定了部件之間的關(guān)系;這種設(shè)計(jì)方式為Office文件提供了結(jié)構(gòu)。部件組成了文件的內(nèi)容,而關(guān)系描述了這些內(nèi)容如何組織在一起。
Office文檔的XML文件格式緊密的集成在一起,但是它們是模塊化的,并且具有高度的靈活性。在下面的一些章節(jié)中,詳細(xì)地描述了Office XML格式的每個(gè)組成部分。它們也使用新的文件格式描述了Office應(yīng)用程序。
注意:
為了理解一個(gè)Office XML格式文件的組成,您可以希望提取一個(gè)文件。為了打開文件,您可以使用一個(gè)ZIP應(yīng)用程序,例如將WinZip(來(lái)自WinZip Computing Corporation)安裝到您的計(jì)算機(jī)當(dāng)中。
為了打開一個(gè)Word 2007 XML文件
1.
|
創(chuàng)建一個(gè)臨時(shí)目錄來(lái)存儲(chǔ)文件和它的部件。
|
2.
|
創(chuàng)建一個(gè)Word 2007文檔,包括文本,圖片,以及其它元素,保存為一個(gè).docx文件。
|
3.
|
在文件名的末端添加一個(gè).zip擴(kuò)展名。
|
4.
|
雙擊文件。這時(shí)將會(huì)在ZIP應(yīng)用程序當(dāng)中打開該文件。您可以查看組成文件的每個(gè)部件。
|
5.
|
將這些部件提取到剛才創(chuàng)建的臨時(shí)目錄當(dāng)中。
|
ZIP 包
許多元素都用來(lái)創(chuàng)建一個(gè)Microsoft Office文檔。其中一些是共享在所有的Office應(yīng)用程序當(dāng)中的,例如,文檔的屬性,樣式表,圖表,鏈接,圖形,和圖片。其它的元素是特定于每個(gè)應(yīng)用程序的,比較Excel當(dāng)中的worksheet,PowerPoint中的slide,或者Word的頁(yè)首和頁(yè)尾。
當(dāng)用戶使用Office 2003或Microsoft Office以前的版本保存文檔的時(shí)候,在磁盤上只會(huì)寫一個(gè)單一的文件,這時(shí)您可以簡(jiǎn)單的打開。這表示了文檔是實(shí)際如何存儲(chǔ),管理和共享的。通過(guò)在一個(gè)ZIP容器中包裝2007 Microsoft Office system的文件中的單獨(dú)部件,文檔也被保存為一個(gè)單一的文件實(shí)例。使用單一的包文件來(lái)表示一個(gè)單一文件的實(shí)體,使得用戶可以在保存和打開Office(2007)文檔時(shí),擁有與以前的Office版本相同的體驗(yàn)。他們可以繼續(xù)處理單一的文件。
圖 1 . 2007版本的文件格式容器
在以前的Office版本當(dāng)中,開發(fā)人員如果希望管理一個(gè)Office文檔的內(nèi)容,那么他們需要了解如何根據(jù)這種二進(jìn)制文件定義的存儲(chǔ)結(jié)構(gòu),讀取和寫入數(shù)據(jù)。這種過(guò)程是非常復(fù)雜的,因?yàn)镺ffice的二進(jìn)制文件被設(shè)計(jì)為主要由Office應(yīng)用程序訪問(wèn)。應(yīng)用程序內(nèi)存內(nèi)的結(jié)構(gòu)反應(yīng)的格式都可以運(yùn)行在內(nèi)存和硬盤比較低的計(jì)算機(jī)當(dāng)中。另外,不使用Office應(yīng)用程序而對(duì)Office二進(jìn)制文件進(jìn)行程序化的修改,被認(rèn)為是文件損壞的主要原因。這使得許多開發(fā)人員不敢去修改Office二進(jìn)制文件。
ZIP被選擇為Office Open XML格式的包格式,因?yàn)樗且环N理解良好的工業(yè)標(biāo)準(zhǔn)?,F(xiàn)在,有許多的工具都可以處理ZIP格式,而且使用ZIP提供一種靈活的,模塊化的結(jié)構(gòu),允許對(duì)于功能進(jìn)行擴(kuò)展。因此,您可以使用任何可以處理工業(yè)標(biāo)準(zhǔn)的ZIP文件的工具,來(lái)訪問(wèn)2007 Microsoft Office system的所有內(nèi)容。在您打開一個(gè)容器文件后,您可以處理文檔包中的任何部件。例如,您可以使用Office Open XML格式打開一個(gè)Word 2007文檔,定位表示W(wǎng)ord文檔體的XML部件,使用任何可以編輯XML的工具來(lái)修改這個(gè)部件,然后將XML部件返回到容器包當(dāng)中,從而創(chuàng)建一個(gè)更新的Office文檔。
部件
在一個(gè)Office XML格式的包當(dāng)中,文件的許多邏輯部件都作為單獨(dú)的文件或部分存儲(chǔ)。這種模塊化的存儲(chǔ)方式是這種文件格式的主要特點(diǎn)之一。模塊化允許您快速的定位一個(gè)特定的部件,并且直接處理這個(gè)部件。您可以根據(jù)預(yù)期的商業(yè)需求,編輯,替換,甚至刪除文檔的部件。
所有的Office應(yīng)用程序都共享相同的部件類型,例如縮略圖,元數(shù)據(jù),多媒體,和關(guān)系部件。其它一致的內(nèi)容也在所有的文件中存在于一個(gè)特定的部件當(dāng)中,例如文檔屬性。但是,也有許多部件是特定于應(yīng)用程序的文檔類型的。例如,一個(gè)工作表的部件只存在于Excel文檔當(dāng)中,而slide master部件只存在于PowerPoint文檔當(dāng)中。
需要注意的是,在Open Packaging Conventions中定義了一些例外,實(shí)際的文件的目錄結(jié)構(gòu)是專有的。包中定義的文件關(guān)系,而不是文件結(jié)構(gòu),定義了哪些文件是有效的。在您更新關(guān)系屬性的時(shí)候,您可以重新排布或者重命名一個(gè)Office(2007)XML 格式定義的ZIP容器里的部件,從而使得文檔中的每個(gè)部件可以相關(guān)。如果關(guān)系是精確的,那么文件可以正確的打開。一個(gè)Office XML格式文件中初始的文件結(jié)構(gòu)是在創(chuàng)建文檔的時(shí)候建立的。這種默認(rèn)的結(jié)構(gòu)允許您簡(jiǎn)單的決定Office XML格式文件的組成。假設(shè)您保存當(dāng)前的關(guān)系,您可以更改這種默認(rèn)的文件結(jié)構(gòu)。更多相關(guān)信息,請(qǐng)查看Walkthrough: Word 2007 Open XML File Format。
部件可以是不同的內(nèi)容類型。用來(lái)描述Microsoft Office應(yīng)用程序數(shù)據(jù)的部件是以XML的方式存儲(chǔ)的。這些部件遵循XML引用架構(gòu)的定義,它定義了相關(guān)的Office功能或?qū)ο?。例如,在一個(gè)Excel 2007文件當(dāng)中,表示一個(gè)工作表的數(shù)據(jù)可以在一個(gè)XML部件當(dāng)中找到,它將一個(gè)Office架構(gòu)附加到Excel工作表當(dāng)中。另外,如果在一個(gè)工作簿中包含多個(gè)工作表,那么將會(huì)對(duì)每個(gè)工作表都有相應(yīng)的一個(gè)XML部件存儲(chǔ)在包文件當(dāng)中。所有的表示默認(rèn)Office文檔部件的架構(gòu)都將被完全的文檔化,并且可以從Microsoft的站點(diǎn)上進(jìn)行下載,而且是免稅使用的。然后,通過(guò)使用標(biāo)準(zhǔn)的基于XML的技術(shù),您可以應(yīng)用您在Office架構(gòu)方面的知識(shí),更加輕松的轉(zhuǎn)換和創(chuàng)建2007 Microsoft Office system的文檔。
在許多場(chǎng)景中,以本地內(nèi)容類型存儲(chǔ)部件是有益的。這些部件不是以XML的格式存儲(chǔ)的。例如,2007版本的Office文檔中的圖片,就是在文檔包中按照二進(jìn)制文件的形式來(lái)存儲(chǔ)的(.png,.jpg,和其它文件類型)。因此,您可以通過(guò)使用一個(gè)ZIP應(yīng)用程序來(lái)打開包容器,并且立即查看,編輯或者替換這種本地格式的圖片。這種存儲(chǔ)方式不僅訪問(wèn)起來(lái)更加容易,而且它也比將圖片存儲(chǔ)為XML格式需要更少的內(nèi)容處理量和磁盤空間。另外一種值得關(guān)注的,以二進(jìn)制方式存儲(chǔ)的部件是VBA項(xiàng)目和嵌入的OLE對(duì)象。(嵌入的OLE對(duì)象是二進(jìn)制的,只要相關(guān)的OLE服務(wù)器提供的是二進(jìn)制的表示形式。例如,2007 Microsoft Office system嵌入的文檔將它們的內(nèi)容作為其它包嵌入。)對(duì)于開發(fā)人員來(lái)說(shuō),這種可訪問(wèn)性使得許多場(chǎng)景更加容易實(shí)現(xiàn)。例如,您可以建立一個(gè)解決方案,用來(lái)枚舉2007 Microsoft Office system的所有文件,將一個(gè)現(xiàn)有的OLE對(duì)象更新到一個(gè)更新的版本。您可以無(wú)需使用Office應(yīng)用程序或者修改文檔特定的XML內(nèi)容,便可以實(shí)現(xiàn)這些應(yīng)用程序場(chǎng)景。下面的章節(jié)簡(jiǎn)要的描述了一些部件,它們對(duì)于所有支持Office XML格式的Office應(yīng)用程序是通用的。這些類型和部件的數(shù)據(jù)決定于創(chuàng)建ZIP容器文件的應(yīng)用程序。例如,Word 2007創(chuàng)建了與文檔相關(guān)的部件,但是PowerPoint 2007創(chuàng)建與幻燈片展示相關(guān)的部件。
_rels 目錄
這個(gè)目錄中包含一個(gè).rels文件,它定義了包中的根關(guān)系。它是在解析整個(gè)包時(shí)首先要瀏覽的第一個(gè)文件。
.rels 文件
包含了基于起始部件(虛擬的起始部件)的關(guān)系。其中的關(guān)系是通過(guò)下面的格式來(lái)定義的:
<Relationship Id="someID" Type="relationshipType" Target="targetPart"/>
其中:
Id 可以是任何字符串,只要它在.rels文件當(dāng)中是唯一的就可以。
Type 表示關(guān)系的類型,它用來(lái)區(qū)分不同的關(guān)系,并且用來(lái)提示關(guān)系的用途。它指向定義Office Open XML格式類型的架構(gòu)。
Target 指向包含關(guān)系目標(biāo)的目錄和文件。(其它部件)
表 1. 關(guān)系類型
http://schemas.microsoft.com/office/2006/relationships/officeDocument
|
http://schemas.microsoft.com/office/2006/relationships/vbaProject
|
http://schemas.microsoft.com/office/2006/relationships/userXmlData
|
http://schemas.microsoft.com/office/2006/relationships/hyperlink
|
http://schemas.microsoft.com/office/2006/relationships/styleSheet
|
http://schemas.microsoft.com/office/2006/relationships/comments
|
http://schemas.microsoft.com/office/2006/relationships/oleObject
|
http://schemas.microsoft.com/office/2006/relationships/e2Object
|
http://schemas.microsoft.com/office/2006/relationships/e1Object
|
http://schemas.microsoft.com/office/2006/relationships/image
|
http://schemas.microsoft.com/office/2006/relationships/sound
|
http://schemas.microsoft.com/office/2006/relationships/movie
|
http://schemas.microsoft.com/office/2006/relationships/slide
|
http://schemas.microsoft.com/office/2006/relationships/layout
|
http://schemas.microsoft.com/office/2006/relationships/notesslide
|
http://schemas.microsoft.com/office/2006/relationships/slidemaster
|
http://schemas.microsoft.com/office/2006/relationships/glossaryDoc
|
http://schemas.microsoft.com/office/2006/relationships/cfChunk
|
http://schemas.microsoft.com/office/2006/relationships/dataStoreItem
|
http://schemas.microsoft.com/office/2006/relationships/embeddedFont
|
http://schemas.microsoft.com/office/2006/relationships/embeddedMetroObject
|
http://schemas.microsoft.com/office/2006/relationships/chart
|
http://schemas.microsoft.com/office/2006/relationships/activeXControl
|
http://schemas.microsoft.com/office/2005/relationships/diagram
|
http://schemas.microsoft.com/office/2005/relationships/diagramData
|
http://schemas.microsoft.com/office/2005/relationships/diagramStyle
|
http://schemas.microsoft.com/office/2005/relationships/diagramColorTrans
|
http://schemas.microsoft.com/office/2005/relationships/diagramDefinition
|
http://schemas.microsoft.com/package/2005/02/md/core-properties
|
http://schemas.microsoft.com/office/2006/relationships/docPropsApp
|
http://schemas.microsoft.com/office/2006/relationships/docPropsCustom
|
http://schemas.microsoft.com/ office/2006/relationships/documentThumbnail
|
http://schemas.microsoft.com/office/2006/relationships/glossaryDoc
|
主要的文檔部件
http://schemas.microsoft.com/office/2006/relationships/officeDocument 關(guān)系的目標(biāo)是定義文檔的主要部件(PowerPoint的幻燈片部件,Excel的工作簿部件,或者Word的文檔部件)。所有其它的關(guān)系都是基于主要文檔部件的。
應(yīng)用程序目錄 (例如Word)
包含了應(yīng)用程序特定的,文檔組件文件,例如(對(duì)于Word來(lái)說(shuō)):
• |
wordDocument.xml 包含了文檔當(dāng)中的數(shù)據(jù)(文本),以及樣式和字體設(shè)置。
|
• |
footer.xml 包含了有關(guān)文檔頁(yè)腳的信息,例如它們位于什么頁(yè)面上以及相關(guān)的樣式信息。
|
• |
header.xml 包含了與footer.xml文件當(dāng)中相類似的信息,但是它是有關(guān)頁(yè)眉的信息。
|
• |
wordDocument.doc 它是原有文檔的復(fù)本。
|
• |
styles.xml 包含了有關(guān)文檔中樣式的信息,例如字體大小,表格樣式,和列表樣式等。
|
音頻文件
包含了所有的音頻類型的文件,例如.mid,.mp3,或.wav等文件。
Content_Types.xml 文件
為包含在我中的其它部件提供了一個(gè)內(nèi)容類型的列表。內(nèi)容類型可以定義為部件的類型,它們可以存儲(chǔ)在一個(gè)包中。
表 2. 一個(gè) ZIP 容器中的內(nèi)容類型
application/vnd.ms.powerpoint.template.macroEnabled.12application/x-font
|
application/vnd.ms-excel.12application/x-font
|
application/vnd.ms-excel.addin.12application/xml
|
application/vnd.ms-excel.binary.12audio/aiff
|
application/vnd.ms-excel.macroEnabled.12audio/basic
|
application/vnd.ms-excel.macroEnabledTemplate.12audio/midi
|
application/vnd.ms-excel.template.12audio/mp3
|
application/vnd.ms-metro.core-properties+xmlaudio/mpegurl
|
application/vnd.ms-metro.relationships+xmlaudio/wav
|
application/vnd.ms-office.activeX+xmlaudio/x-ms-wax
|
application/vnd.ms-office.chartaudio/x-ms-wma
|
application/vnd.ms-office.vbaProjectimage/bmp
|
application/vnd.ms-powerpoint.image/gif
|
application/vnd.ms-powerpoint.macroEnabled.12image/jpeg
|
application/vnd.ms-powerpoint.main.12+xmlimage/png
|
application/vnd.ms-powerpoint.presentation.12image/tiff
|
application/vnd.ms-powerpoint.show.12image/xbm
|
application/vnd.ms-powerpoint.show.macroEnabled.12image/x-icon
|
application/vnd.ms-powerpoint.template.12video/avi
|
application/vnd.ms-word.document.12video/mpeg
|
application/vnd.ms-word.document.macroEnabled.12video/mpg
|
application/vnd.ms-word.document.macroEnabled.main+xmlvideo/x-ivf
|
application/vnd.ms-word.document.main+xmlvideo/x-ms-asf
|
application/vnd.ms-word.fontTable+xmlvideo/x-ms-asf-plugin
|
application/vnd.ms-word.listDefs+xmlvideo/x-ms-wm
|
application/vnd.ms-word.settings+xmlvideo/x-ms-wmv
|
application/vnd.ms-word.styles+xmlvideo/x-ms-wmx
|
application/vnd.ms-word.subDoc+xmlvideo/x-ms-wvx
|
application/vnd.ms-word.template.12
|
application/vnd.ms-word.template.macroEnabled.12
|
application/vnd.ms-word.template.macroEnabled.main+xml
|
application/vnd.ms-word.template.main+xml
|
文檔屬性部件
包含了對(duì)所有遵循XPS格式的文件定義的核心文檔屬性,例如:
• |
作者
|
• |
標(biāo)題
|
• |
主題
|
• |
注釋
|
• |
最后保存日期
|
• |
創(chuàng)建日期
|
關(guān)系
部件都是單獨(dú)的元素,它們組成了2007版本的Office文檔。使用關(guān)系,可以用來(lái)指定部件集合之間的關(guān)聯(lián),從而形成實(shí)際的文檔。關(guān)系是通過(guò)XML來(lái)定義的。關(guān)系指定了一個(gè)源部件和一個(gè)目標(biāo)部件之間的連接。例如,您可以通過(guò)一個(gè)關(guān)系,在一個(gè)幻燈片和一個(gè)圖片之間定義連接。關(guān)系被存儲(chǔ)在文檔容器的XML部件或者“關(guān)系部件”當(dāng)中。如果一個(gè)源部件擁有多個(gè)關(guān)系,所有后續(xù)的關(guān)系都將會(huì)被列出在相同的XML關(guān)系部件當(dāng)中。
關(guān)系在Office XML格式中扮演著重要的角色。每個(gè)文檔部件都至少被一個(gè)關(guān)系所引用著。關(guān)系的使用,使得我們可以發(fā)現(xiàn)一個(gè)部件與另一個(gè)部件之間的關(guān)聯(lián),而且無(wú)需查找部件的內(nèi)容。在部件當(dāng)中,所有到關(guān)系的引用都使用一個(gè)Relationship ID來(lái)表示,它允許所有部件之間的連接,并且它與特定內(nèi)容的架構(gòu)無(wú)關(guān)。
圖 2. 一個(gè)Excel 2007工作簿中最高級(jí)別的關(guān)系圖
下面是一個(gè)Excel 2007工作簿中的關(guān)系部件的例子,這個(gè)工作簿包含兩個(gè)工作表:
<Relationships xmlns="http://schemas.microsoft.com/package/2005/06/relationships">
<Relationship ID="rId3" Type="http://schemas.microsoft.com/office/2005/8/relationships/xlStyles" Target="styles.xml"/>
<Relationship ID="rId2" Type="http://schemas.microsoft.com/office/2005/8/relationships/xlWorksheet" Target="worksheets/Sheet2.xml"/>
<Relationship ID="rId1" Type="http://schemas.microsoft.com/office/2005/8/relationships/xlWorksheet" Target="worksheets/Sheet1.xml"/>
<Relationship ID="rId5" Type="http://schemas.microsoft.com/office/2005/8/relationships/xlMetadata" Target="metadata.xml"/>
<Relationship ID="rId4" Type="http://schemas.microsoft.com/office/2005/8/relationships/xlSharedStrings" Target="strings.xml"/>
</Relationships>
需要注意的是,關(guān)系不僅可以表示內(nèi)部文檔的引用,而且可以表示外部資源的引用。例如,如果一個(gè)文檔中包含鏈接的圖片或者對(duì)象,那么這些也可以用關(guān)系來(lái)表示。這使得文檔當(dāng)中指向外部資源的鏈接更加容易定位,查找和更改。它為您提供了修復(fù)壞的外部鏈接,驗(yàn)證非熟悉資源,或者刪除潛在有害鏈接的能力。
Office XML格式中關(guān)系的使用對(duì)于開發(fā)人員來(lái)說(shuō)是非常有幫助的。關(guān)系簡(jiǎn)化了文檔中定位內(nèi)容的過(guò)程,因?yàn)槟恍枰馕鎏囟ㄎ臋n的XML來(lái)查找部件 - 您也不需要解析特定文檔的XML來(lái)查找內(nèi)部和外部文檔資源。關(guān)系使得您可以快速的找到一個(gè)文檔當(dāng)中的所有內(nèi)容。例如,如果您需要計(jì)算一個(gè)Excel當(dāng)中工作表的數(shù)量,那么您可以在關(guān)系部件中查找一共有多少個(gè)工作表部件。您也可以使用關(guān)系來(lái)檢查一個(gè)文檔當(dāng)中的內(nèi)容類型。這在您需要確定一個(gè)文檔中是否包含一種特定的可能會(huì)有害(例如一個(gè)可疑的OLE對(duì)象)或有益(例如有時(shí)您希望提取文檔當(dāng)中所有的JPEG圖片,并用來(lái)重用)的內(nèi)容類型時(shí)非常有幫助。
關(guān)系也使得您可以在不學(xué)習(xí)特定應(yīng)用程序的語(yǔ)法或內(nèi)容標(biāo)記時(shí)便可以處理文檔。例如,無(wú)需任何有關(guān)如何處理PowerPoint程序的知識(shí),一個(gè)開發(fā)人員便可以通過(guò)編輯文檔的關(guān)系,輕松地從一個(gè)幻燈片當(dāng)中刪除無(wú)關(guān)的幻燈片。
啟用宏的文件 vs. 不啟用宏的文件
默認(rèn)情況下,以O(shè)ffice XML格式保存的Microsoft Office system的文檔是不包含宏的文件,也就是不包含任何代碼。這樣就使得那么惡意的代碼,在默認(rèn)的文檔格式中,永遠(yuǎn)不會(huì)被執(zhí)行。同時(shí),2007 Microsoft Office system的文檔仍然可以包含并使用宏,但是用戶或者開發(fā)人員必須將這些文檔保存為一個(gè)啟用宏的文檔類型。這種保護(hù)機(jī)制不會(huì)影響您的解決方案的建立,但是它使得企業(yè)使用的文檔更加安全。
啟用宏的文件與不啟用宏的文件的格式完全相同,但是其中會(huì)包含一些不啟用宏的文件中沒(méi)有的部件。這些附加的部件取決于文檔中自動(dòng)化代碼的類型。使用VBA的啟用宏的文件包含了一個(gè)二進(jìn)制部件,它存儲(chǔ)了VBA項(xiàng)目。任何使用Excel 4.0樣式宏(XLM宏)的Excel工作簿或者包含命令按鈕的PowerPoint幻燈片也將會(huì)保存為啟用宏的文件類型。如果在不啟用宏的文件中包含了一個(gè)特定代碼的部件,那么這段代碼的有意或惡意放置的,Office應(yīng)用程序都不會(huì)執(zhí)行該代碼 - 也沒(méi)有任何異常。
現(xiàn)在,在打開一個(gè)2007 Microsoft Office system的文檔前,您就可以判斷它是否包含代碼。這種“提前通知”在Office之外的應(yīng)用程序當(dāng)中也非常容易實(shí)現(xiàn)。您可以查看包文件中是否包含基于代碼的部件,而無(wú)需運(yùn)行Office也不會(huì)運(yùn)行潛在危害的代碼。如果一個(gè)文件看上去非??梢?,那么您可以刪除文件中所有的可執(zhí)行代碼部件,從而使得代碼不會(huì)對(duì)您的計(jì)算機(jī)造成任何危害。
文件擴(kuò)展名
2007 Microsoft Office system的文檔使用Office XML格式保存文件,它擁有新的文件擴(kuò)展名,這使得Office可以將這些文件與以前Office版本保存的二進(jìn)制文件區(qū)分開來(lái)。新的文件擴(kuò)展名是從以前的二進(jìn)制文件的擴(kuò)展名延伸而來(lái)的,它們只是在后面加上一些后綴。Word 2007,Excel 2007,和PowerPoint 2007使用的默認(rèn)擴(kuò)展名只是在原有的文件擴(kuò)展名上加上一個(gè)字母“x”,也就是分別是.docx,.xlsx,和.pptx。其它使用新文件格式的Office文檔類型(包括模板,Add-In,和PowerPoint放映)也都擁有新的擴(kuò)展名。
在2007 Office版本中其它新的改變還有,為啟用宏的文檔和不啟用宏的文檔使用不同的擴(kuò)展名。啟用宏的文檔使用的擴(kuò)展名的結(jié)尾是字母“m”,而不是“x”。例如,一個(gè)啟用宏的Word 2007文檔使用.docm的擴(kuò)展名,從而使得用戶或應(yīng)用程序在打開文檔前就可以判斷出這個(gè)文件中是包含代碼的。
表 3. Word 2007 文檔格式的擴(kuò)展名列表
Word 2007 XML 文檔
|
.docx
|
Word 2007 XML 啟用宏的文件
|
.docm
|
Word 2007 XML 模板
|
.dotx
|
Word 2007 XML 啟用宏的模板
|
.dotm
|
表 4. Excel 2007文檔格式的擴(kuò)展名列表
Excel 2007 XML 工作表
|
.xlsx
|
Excel 2007 XML 啟用宏的工作表
|
.xlsm
|
Excel 2007 XML 模板
|
.xltx
|
Excel 2007 XML 啟用宏的模板
|
.xltm
|
Excel 2007 二進(jìn)制工作表
|
.xlsb
|
Excel 2007 XML 啟用宏的 Add-In
|
.xlam
|
有 5. PowerPoint 2007文檔格式的擴(kuò)展名列表
PowerPoint 2007 XML 演示文稿
|
.pptx
|
PowerPoint 2007 啟用宏的 XML演示文稿
|
.pptm
|
PowerPoint 2007 XML模板
|
.potx
|
PowerPoint 2007 啟用宏的 XML模板
|
.potm
|
PowerPoint 2007 啟用宏的 XML Add-In
|
.ppam
|
PowerPoint 2007 XML 放映
|
.ppsx
|
PowerPoint 2007 啟用宏的 XML 放映
|
.ppsm
|
使用Office XML 格式開發(fā)解決方案
Office XML格式使得您可以創(chuàng)建更多的包含文檔的解決方案類型。您可以在新的文件格式中使用任何可以處理ZIP存檔的工具或技術(shù)來(lái)訪問(wèn)一個(gè)Office文檔中的內(nèi)容。然后,您可以使用任何標(biāo)準(zhǔn)XML的處理技術(shù)來(lái)處理文檔內(nèi)容,或者使用任何適用于文檔中嵌入的二進(jìn)制格式的文件(例如圖片)的工具來(lái)處理這些內(nèi)容。
另外,2007 Microsoft Office 系統(tǒng)的文檔可以手動(dòng)的以ZIP存檔的格式打開,為開發(fā)人員帶來(lái)了巨大的益處。例如,在建立一個(gè)基于Office的解決方案時(shí),您可以檢查一個(gè)文檔的內(nèi)容和結(jié)構(gòu),而無(wú)需編寫任何代碼。這種能力對(duì)于解決方案的設(shè)計(jì)和原型的創(chuàng)建是什么有幫助的。
在一個(gè)2007 Microsoft Office system的文檔中,它的結(jié)構(gòu)非常簡(jiǎn)單,您可以很方便的瀏覽文檔的部件和它們之間的關(guān)系,無(wú)論您是定位信息,更改內(nèi)容,還是想從一個(gè)文檔中刪除元素。通過(guò)使用XML,以及剛剛發(fā)布的Office引用架構(gòu),您可以輕松的創(chuàng)建文檔,將數(shù)據(jù)添加到現(xiàn)有文檔,或者在文檔中搜索特定內(nèi)容。
本文剩下的部分提出了一些基于Office XML格式的基于文檔的解決方案場(chǎng)景。這些只是可能創(chuàng)建的解決方案中的一小部分:
• |
數(shù)據(jù)的互操作性
|
• |
內(nèi)容處理
|
• |
內(nèi)容共享和重用
|
• |
文檔裝配件
|
• |
文檔安全性
|
• |
管理敏感信息
|
• |
文檔樣式
|
• |
文檔跟蹤
|
數(shù)據(jù)的互操作性
XML成為了數(shù)據(jù)變換較為流行的標(biāo)準(zhǔn),這使得新的Office XML格式在異類的系統(tǒng)中進(jìn)行基于文檔的數(shù)據(jù)訪問(wèn)更加變?yōu)榭梢?。無(wú)論是用戶希望一個(gè)部門中共享文檔數(shù)據(jù),還是兩個(gè)企業(yè)希望交換業(yè)務(wù)數(shù)據(jù),XML作為Microsoft Office文檔默認(rèn)的文件格式,都使得Office應(yīng)用程序?qū)嶋H地參與到業(yè)務(wù)處理過(guò)程當(dāng)中,而不會(huì)再有以前二進(jìn)制格式所帶來(lái)的限制。
新的文件格式的開放,解除了數(shù)據(jù)的束縛,并且?guī)?lái)了更加廣闊的新層次的集成。例如,您可以參考新文件格式發(fā)布的標(biāo)準(zhǔn),來(lái)創(chuàng)建包含豐富數(shù)據(jù)的文檔,并且無(wú)需使用Office應(yīng)用程序。服務(wù)器端的應(yīng)用程序可以使用大規(guī)模的解決方案批量處理文檔,從而將企業(yè)數(shù)據(jù)與人們熟悉的,靈活的Office應(yīng)用程序混合在一起。您可以使用標(biāo)準(zhǔn)的XML協(xié)議,例如XPath(一種通常的XML查詢語(yǔ)言),以及擴(kuò)展樣式表語(yǔ)言轉(zhuǎn)換(XSLT)從文檔中獲取數(shù)據(jù),或使用外部數(shù)據(jù)更新一個(gè)文檔中的內(nèi)容。
這種場(chǎng)景可以在對(duì)分發(fā)到客戶的大量文檔進(jìn)行個(gè)性化時(shí)使用。您可以使用XML的服務(wù)器端應(yīng)用程序,從一個(gè)企業(yè)數(shù)據(jù)庫(kù)或客戶關(guān)系管理(CRM)應(yīng)用程序當(dāng)中提取數(shù)據(jù),并將提取出來(lái)的信息程序化的插入到一個(gè)標(biāo)準(zhǔn)的文檔模板當(dāng)中。創(chuàng)建這些文檔是非常高效的,因?yàn)槟静恍枰\(yùn)行Office應(yīng)用程序;這種功能也可以用來(lái)生成高質(zhì)量、豐富的Office文檔。
通過(guò)使用Office中的自定義架構(gòu),您可以使用文檔來(lái)共享數(shù)據(jù)。鎖定在一個(gè)二進(jìn)制格式文件中的信息是非常對(duì)于訪問(wèn)的,因此,文檔應(yīng)當(dāng)提供為一種開放的,可交換的數(shù)據(jù)源。自定義架構(gòu)不僅可以插入或提取數(shù)據(jù),它們也可以向文檔中添加結(jié)構(gòu),從而強(qiáng)制數(shù)據(jù)的有效性。
內(nèi)容處理
編輯現(xiàn)有Office文檔的內(nèi)容是另外一種有效的示例,其中Office XML格式提高了這種處理過(guò)程。這種編輯可能包括更新少量的數(shù)據(jù),替換整個(gè)部件,刪除部件,或者添加新的部件。通過(guò)使用關(guān)系和部件,新的文件格式使得文檔的內(nèi)容更容易查找和處理。XML和XML架構(gòu)的使用,使得您可以使用通用的XML技術(shù),使用XPath和XSLT,來(lái)編輯文檔部件當(dāng)中的數(shù)據(jù)。
一種典型的場(chǎng)景就是編輯一個(gè)Word文檔中頁(yè)眉的文字。當(dāng)然,這并不是只為一個(gè)文檔自動(dòng)化任務(wù)。但是,可以想象另外一個(gè)場(chǎng)景,如果一個(gè)公司發(fā)生了合并,而他們需要將新公司的名稱更新到成百上千個(gè)不同文檔的頁(yè)眉,那該怎么辦?開發(fā)人員可以寫一些代碼,來(lái)遍歷所有的文檔,在Word文件結(jié)構(gòu)中定位頁(yè)眉部件,然后執(zhí)行一個(gè)XPath查詢來(lái)查找原有的文字。然后,就可以插入新的文字,替換頁(yè)眉部件,并且重復(fù)這個(gè)過(guò)程直到每個(gè)文檔都被更新。自動(dòng)化的過(guò)程可以節(jié)省大量的時(shí)間,這種過(guò)程可以避免在人工操作過(guò)程中可能出現(xiàn)的錯(cuò)誤。
另外一個(gè)場(chǎng)景是通過(guò)更改整個(gè)部件來(lái)更新現(xiàn)有的Office文檔。在一個(gè)Excel 2007工作簿中,您可以通過(guò)覆蓋一個(gè)工作表的部件,來(lái)替換整個(gè)工作表中包含的陳舊數(shù)據(jù)以及過(guò)期的計(jì)算模型。這種類型的更新也可以應(yīng)用到二進(jìn)制的部件當(dāng)中。如果需要的話,您可以替換一個(gè)現(xiàn)有的圖片,或者一個(gè)OLE對(duì)象。例如,您可以通過(guò)覆蓋一個(gè)Microsoft Office Visio圖形的部件,來(lái)更新嵌入在Office文檔當(dāng)中的這種類型的OLE對(duì)象。您可以將超鏈接的URL更新為指向新的地址。
下面是一些特定應(yīng)用程序的場(chǎng)景。
Word 2007中的內(nèi)容處理
通常,在業(yè)務(wù)處理中都會(huì)將“樣板文件(boilerplate)”文字合并在Word文檔當(dāng)中。例如,企業(yè)當(dāng)中創(chuàng)建的每個(gè)公開分布的文檔,都需要一個(gè)正式的法律聲明或者公布一些條款。另外,很常見的一個(gè)樣板文件就是“公司概覽”小節(jié),它可能用于銷售目的,或者發(fā)布企業(yè)的聲明。Word提供的功能,例如AutoText,可以完成格式化文字的插入,但是這種功能在規(guī)模上非常有限,因?yàn)樗枰猈ord的自動(dòng)化任務(wù),或者需要直接的用戶交互。
Word 2007為您向一個(gè)文檔中插入內(nèi)容提供了一種非常靈活的選擇。Word XML格式允許您添加一種叫做文檔構(gòu)建塊的文檔部件,它在文檔被Word打開時(shí)由整個(gè)文檔引用。這就意味著,您可以建立一個(gè)文檔構(gòu)建塊的庫(kù),您可以從中得到Word可以展現(xiàn)的文檔格式,并且可以程序化的將它們重用在Word文檔解決方案當(dāng)中。
在處理Word文檔內(nèi)容方面強(qiáng)大的能力,也帶來(lái)了一些有趣的應(yīng)用場(chǎng)景,例如服務(wù)器端的文檔裝配件?;氐角懊娼o出的例子,您可以自動(dòng)向服務(wù)器上創(chuàng)建的一個(gè)文檔插入一段法律聲明。那么,可以想象一個(gè)跨國(guó)公司,它需要在不同語(yǔ)言的文件中包含本地語(yǔ)言版本的法律聲明。這個(gè)公司可以創(chuàng)建適當(dāng)?shù)奶囟ㄕZ(yǔ)言的聲明,并保存成.html文件放置在服務(wù)器上。重建文檔的應(yīng)用程序可以將所需的語(yǔ)言相應(yīng)的文檔片斷插入到文檔的容器當(dāng)中,并保存為一個(gè)部件。然后,這個(gè)片斷將展現(xiàn)為Word文檔的一部分。
Excel 2007中的內(nèi)容處理
為了優(yōu)化加載和保存的性能以及文件大小,Excel 2007為重復(fù)的文本在Excel文件中只存儲(chǔ)一份拷貝。為了實(shí)現(xiàn)這種功能,Excel在一個(gè)文檔部件中實(shí)現(xiàn)了一個(gè)共享的字符串表,這個(gè)部件是由下面的目標(biāo)來(lái)指定的http://schemas.microsoft.com/office/2005/8/relationships/xlSharedStrings。在一個(gè)工作簿中,每個(gè)不同的文字值在這個(gè)部件中只會(huì)列出一次。單個(gè)工作表的單元格將引用這個(gè)字符串表,從而獲取它們的值。
這種處理過(guò)程優(yōu)化了Excel XML格式,同時(shí)也帶來(lái)了一些有趣的內(nèi)容處理解決方案。在跨國(guó)公司工作的開發(fā)人員,可以使用共享的字符串表來(lái)提供多語(yǔ)言的支持。他們不再需要為不同的語(yǔ)言建立不同的工作簿,而可以使用一個(gè)包含字符串表的工作簿,而這個(gè)字符串表可以對(duì)應(yīng)于不同的語(yǔ)言。另外,也可以使用字符串表在工作簿集合中查找關(guān)鍵字。處理一個(gè)簡(jiǎn)單的,基于字符串文本的XML文檔,要比處理有關(guān)許多工作簿和工作表的Excel對(duì)象模型更為快速和簡(jiǎn)單。
PowerPoint 2007中的內(nèi)容處理
因?yàn)镻owerPoint 2007的演示文稿是使用PowerPoint XML格式來(lái)存儲(chǔ)的,所以它的內(nèi)容具有高度的可訪問(wèn)性。因?yàn)檫@是第一版支持XML格式的PowerPoint,所以它較以前的版本相比,可以提供更多的應(yīng)用場(chǎng)景。您現(xiàn)在對(duì)幻燈片和幻燈片的注釋文本擁有完全的訪問(wèn)能力。您可以據(jù)此建立有關(guān)查找,索引,和創(chuàng)建演示文稿內(nèi)容的解決方案。您可以使用XML簡(jiǎn)單的生成數(shù)據(jù)驅(qū)動(dòng)的演示文稿。并且,您也可以訪問(wèn)幻燈片的母版和幻燈片布局,并通過(guò)XML部件程序化的格式現(xiàn)有或新的PowerPoint演示文稿。
您可以通過(guò)不同的方式來(lái)組裝或重用PowerPoint演示文稿當(dāng)中的內(nèi)容。您可以建立一個(gè)應(yīng)用程序,查找現(xiàn)有演示文稿當(dāng)中存儲(chǔ)的幻燈片目錄。每張幻燈片都被表示為單獨(dú)的XML部件,因此,可以建立解決方案來(lái)對(duì)企業(yè)存儲(chǔ)和管理PowerPoint 2007幻燈片數(shù)據(jù)進(jìn)行優(yōu)化。您還可以編寫一個(gè)幻燈片“查看器“,它允許用戶查看并選擇他們所需要的幻燈片,并在PowerPoint外輕松的組成一個(gè)新的演示文稿。這種應(yīng)用程序甚至可以是基于Web的應(yīng)用程序,以方便集中的管理。
內(nèi)容共享和重用
Office XML格式的模塊化使得我們可以一次生成內(nèi)容,然后將它重用到多個(gè)文檔當(dāng)中。作為一個(gè)開發(fā)人員,您可以想象去創(chuàng)建一些核心的模板,然后在創(chuàng)建其它文檔的時(shí)候?qū)⑦@些部分作為構(gòu)建塊來(lái)重用。例如,您可以在一個(gè)Word文檔中使用在另外一個(gè)Word文檔當(dāng)中建立的表格。您可以一次性建立圖表(圖表在所有2007 Microsoft Office system應(yīng)用程序當(dāng)中擁有通用的架構(gòu)定義),然后在其它不同類型的文檔中重用這些圖表。對(duì)于格式的可訪問(wèn)性,使得內(nèi)容共享真正變?yōu)榭赡堋?/p>
在有些場(chǎng)景中,需要在文檔中建立一個(gè)圖片的存貯。您可以創(chuàng)建一個(gè)解決方案來(lái)提取Office文檔集合中的所有圖片,并允許用戶重用這些圖片。因?yàn)?007版本中的Office文檔以二進(jìn)制的部件來(lái)存儲(chǔ)圖片,所以您可以簡(jiǎn)單的創(chuàng)建一個(gè)解決方案來(lái)管理圖片庫(kù)。然后,那些希望使用以前用過(guò)的圖片的用戶,不再需要瀏覽整個(gè)文檔集合,也不用單獨(dú)打開和關(guān)閉每個(gè)文檔來(lái)查找圖片。他們可以使用自定義的應(yīng)用程序來(lái)查找黑乎乎,并輕松地將它們插入到正在處理的文檔當(dāng)中。
您可以建立一個(gè)類似的應(yīng)用程序,它重用文檔中提取出來(lái)的“縮略圖”圖片,然后將它顯示在文檔管理的過(guò)程當(dāng)中。
文檔裝配件
對(duì)于開發(fā)人員來(lái)說(shuō),一個(gè)非常常見的需求就是在不調(diào)用Microsoft Office應(yīng)用程序的情況下,在服務(wù)器上創(chuàng)建Microsoft Office文檔。有些企業(yè)需要生成復(fù)雜、包含豐富數(shù)據(jù)的文檔,或者需要大量的組裝文檔,它們需要更加高效的處理,從而實(shí)現(xiàn)這些目標(biāo)。通過(guò),Office應(yīng)用程序無(wú)法被編寫或運(yùn)行在服務(wù)器上。
在Microsoft Office 2003版本中,XML文檔格式的引入可以根據(jù)Office 2003 XML Reference Schemas來(lái)生成,它幫助我們克服了這種限制。通過(guò)對(duì)XML的組裝,我們可以建立一個(gè)Word或Excel文檔,只要它符合Office架構(gòu)就可以。在那個(gè)時(shí)候,這確實(shí)是一種巨大的優(yōu)勢(shì),但是不幸的是,它只能應(yīng)用于Excel和Word,而且只有Word才真正完全的實(shí)現(xiàn)了XML文件的支持。2007 Office版本在這些問(wèn)題上都做出了巨大的努力,它添加了PowerPoint XML文件類型,并且保證PowerPoint XML文件和Excel XML文件都真正得以實(shí)現(xiàn)。
2007 Office版本的這種技術(shù)上的優(yōu)勢(shì),使得您可以建立Office解決方案,在無(wú)需打開Office的情況下就可以生成Excel,Word和PowerPoint文檔。這種解決方案必須根據(jù)2007版本的架構(gòu)來(lái)創(chuàng)建XML,并且通過(guò)Office XML格式來(lái)創(chuàng)建包的內(nèi)容。雖然Office架構(gòu)是非常豐富的,但是要完全描述Microsoft Office應(yīng)用程序中提供的豐富功能,在生成文檔時(shí)并不需要所有由格式定義的結(jié)構(gòu)。每個(gè)Office應(yīng)用程序都可以通過(guò)一些定義的項(xiàng)打開文件,因而可以這樣去創(chuàng)建許多文件。
注意,文檔裝配件不只適合于新建的文檔。當(dāng)然,通過(guò)遵循Office XML格式的規(guī)則,您無(wú)需使用Office便可以通過(guò)編程的方式來(lái)建立文檔。但是,通常文檔裝配件意味著使用現(xiàn)有的文檔,數(shù)據(jù)和其它內(nèi)容建立文檔。新的Office XML格式非常適用于這種應(yīng)用場(chǎng)景,因?yàn)樗鼈儽旧砭褪悄K化的結(jié)構(gòu),而且它們的內(nèi)容是基于XML的。
文檔裝配件的例子也適用于PowerPoint演示文稿。許多企業(yè)有大量的PowerPoint文件,這些文件擁有巨大的可重用價(jià)值。通常,用戶從許多先前的演示文稿中借鑒一些幻燈片,從而創(chuàng)建相關(guān)的演示文稿。查找、定位、集成(拷貝和粘貼)幻燈片是非常耗費(fèi)時(shí)間的,冗余的過(guò)程,許多企業(yè)都希望自動(dòng)化這種演示文稿的組成過(guò)程。使用2007 Office版本,PowerPoint演示文稿文件中單個(gè)的幻燈片可以訪問(wèn),因?yàn)樗鼈兠總€(gè)都是單獨(dú)以XML部件的形式存儲(chǔ)于演示文稿容器包中??梢詣?chuàng)建一個(gè)解決方案,利用這種結(jié)構(gòu)來(lái)完全自動(dòng)化演示文稿的裝配過(guò)程。您可以使用自定義的XML來(lái)管理指向單個(gè)幻燈片的元數(shù)據(jù),因此允許用戶使用預(yù)定義的關(guān)鍵字輕松的查找它們。在用戶選擇一個(gè)幻燈片之后,解決方案將幻燈片的XML部件插入到演示文稿當(dāng)中,并且創(chuàng)建引用關(guān)系。
文檔安全性
在當(dāng)今的信息技術(shù)中,安全性是至關(guān)重要的。OS格式幫助您更加安全的處理Office文檔,并且交付考慮文檔安全性的解決方案。通過(guò)新的文件格式,您可以建立解決方案,并在引起問(wèn)題前查找并刪除所有潛在的機(jī)密信息。
例如,如果一個(gè)公司需要一個(gè)解決方案,用來(lái)將文檔存儲(chǔ)到一個(gè)存檔庫(kù)當(dāng)中,其中不需要運(yùn)行自定義代碼,或者向一個(gè)客戶發(fā)送不包含宏的文檔。您可以編寫一個(gè)應(yīng)用程序,通過(guò)查找所有的Office文檔,并且刪除其中指向http://schemas.microsoft.com/office/2006/relationships/vbaProject目標(biāo)的部件,從而從Office文檔中刪除所有的VBA代碼。這樣,就可以得到一系列更高質(zhì)量的文件。
另外,Office XML格式為2007版本中的每個(gè)產(chǎn)品只提供了一種文件類型(Word的.docm,Excel的.xlsm,以及PowerPoint的.pptm)可以執(zhí)行宏代碼。任何不包含“m”結(jié)尾的文件類型都不包含宏代碼,也不能執(zhí)行任何代碼。這樣,就可以保證用戶的安全,而不會(huì)受到惡意軟件的影響。
不幸的是,宏代碼不是對(duì)于Office用戶唯一的潛在安全性威脅。最近,安全性的問(wèn)題在.jpg二進(jìn)制文件當(dāng)中也發(fā)現(xiàn)了。您可以從這些二進(jìn)制文件中檢查的風(fēng)險(xiǎn),例如OLE對(duì)象和圖片,并且詢問(wèn)Office文檔并刪除所有引發(fā)的問(wèn)題。例如,如果一個(gè)特定的OLE對(duì)象被認(rèn)為是一種已知的安全威脅,那么您可以創(chuàng)建一個(gè)應(yīng)用程序,在所有包含這種對(duì)象的文檔中進(jìn)行定位和清除。類似的,您也可以通過(guò)檢查文檔中的關(guān)系部件,快速的確定2007 Microsoft Office system文檔的所有外部引用。這種確定使得解決方案的開發(fā)人員可以決定,文檔中引用的外部資源是否正確可信。
您可以根據(jù)內(nèi)容類型和關(guān)系來(lái)阻止部件。例如,如果一個(gè)IT管理員發(fā)現(xiàn).gif圖片當(dāng)中存在著安全隱患,那么就可以使用一種組策略來(lái)拒絕2007 Microsoft Office system文檔當(dāng)中所有g(shù)if圖片內(nèi)容的加載。在部署正確的安全補(bǔ)丁后,IT管理員可以確定所有的用戶都可以更加安全的使用文檔。
您也可以通過(guò)格式策略來(lái)阻止部件。例如,如果IT管理員發(fā)現(xiàn)一段不完整的注釋可能會(huì)引起PowerPoint引發(fā)緩沖區(qū)溢出問(wèn)題,那么可以通過(guò)部署一個(gè)Office文件格式策略來(lái)保護(hù)用戶和他們的計(jì)算機(jī)。這時(shí),不會(huì)阻止內(nèi)容類型(因?yàn)樵谶@種情況下,它只是一個(gè)包含文本的XML),而是特別的通過(guò)阻止schemas.microsoft.com/office/2006/relationships/comments類型來(lái)阻止注釋。管理員可以使用Microsoft Office策略模板(.adm文件)來(lái)設(shè)置這些選項(xiàng)。有關(guān)使用Office策略模板的更多信息,可以查閱Microsoft知識(shí)庫(kù)里面的文章Administrators Can Use Office Policy Templates with the Group Policy Settings of Windows。
管理敏感信息
在保護(hù)用戶阻止他們運(yùn)行有害內(nèi)容的同時(shí),您也可以幫助用戶在共享數(shù)據(jù)的同時(shí)保護(hù)他們的機(jī)密信息。這種數(shù)據(jù)可能包含一些個(gè)性化信息,或者跟蹤的更改,注釋和標(biāo)注,他們可能不希望共享這些信息。您可以用程序來(lái)刪除這些信息,而不需要改動(dòng)整個(gè)文件。例如,要?jiǎng)h除文檔的注釋,您可以檢查注釋部件關(guān)系是否存在,如果存在,那么將關(guān)聯(lián)的注釋部件刪除。
除了保護(hù)PII和注釋外,Office XML格式還允許對(duì)這些信息的訪問(wèn),在其它的一些情況下可能會(huì)很有用。您可以創(chuàng)建一個(gè)解決方案,使用PII數(shù)據(jù)來(lái)返回一個(gè)文檔作者的列表。通過(guò)新的文件格式,在無(wú)需打開Office或使用它的對(duì)象模型的情況下,便可以生成這個(gè)列表。類似的,應(yīng)用程序可以遍歷一個(gè)目錄,查看其中的所有Office文檔,并且聚合文檔中所有注釋。您可以添加額外的條件來(lái)保證注釋的質(zhì)量,從而幫助用戶更好的管理他們所創(chuàng)建的文檔。
文檔樣式
在使用Office XML格式的Office文檔方面,文檔樣式、格式和字體,也都是在容器包中單獨(dú)的XML部件中維護(hù)的。因此,需要重申的是,您可以創(chuàng)建解決方案來(lái)利用這些特點(diǎn)。一些企業(yè)擁有非常特殊的文檔標(biāo)準(zhǔn),而管理這些文檔又是非常耗費(fèi)時(shí)間的。那么,您就可以在不打開Office的情況下修改或替換文檔當(dāng)中的字體。
另外,通常會(huì)出現(xiàn)一些文檔,它們擁有相同的內(nèi)容,但是不同的部門、地區(qū)或目標(biāo)用戶把它們進(jìn)行了不同的格式化。您可以使用一個(gè)單一的文檔來(lái)維護(hù)內(nèi)容,并在必要的情況下應(yīng)用一個(gè)新的樣式集合。為了實(shí)現(xiàn)這一點(diǎn),您需要使用其它的部件來(lái)替換指向http://schemas.microsoft.com/office/2006/relationships/styleSheet的部件。這種簡(jiǎn)單的替換,使得您無(wú)需管理許多的文檔內(nèi)容,而只是控制一個(gè)文檔的展現(xiàn)方式。
文檔跟蹤
在信息技術(shù)當(dāng)中,如何有效的管理文檔是一個(gè)十分棘手的問(wèn)題。在Microsoft Office 2003中,您可以使用OLE來(lái)訪問(wèn)Office文件的原有屬性,例如作者、標(biāo)題、主題和其它屬性。在新的Office XML格式當(dāng)中,文檔屬性也非常容易訪問(wèn),因?yàn)檫@些屬性都存儲(chǔ)在文檔的一個(gè)部件當(dāng)中。下面是一個(gè)Word .doc文件的文檔屬性部件的救命。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CoreProperties xmlns="http://schemas.microsoft.com/package/2005/06/md/core-properties">
<Title>Word Document Sample</Title>
<Subject>Microsoft Office Word 2007</Subject>
<Creator>2007 Microsoft Office System User</Creator>
<Keywords/>
<Description>2007 Microsoft Office system .docx file</Description>
<LastModifiedBy>2007 Microsoft Office System User</LastModifiedBy>
<Revision>2</Revision>
<DateCreated>2005-05-05T20:01:00Z</DateCreated>
<DateModified>2005-05-05T20:02:00Z</DateModified>
</CoreProperties>
但是,使用新文件格式的Office文檔,允許您添加您自己的數(shù)據(jù)和內(nèi)容,而不僅僅局限于Office所提供的屬性。例如,對(duì)于高級(jí)的文檔跟蹤,您可以創(chuàng)建您自定義的XML,并將它放置在文件當(dāng)中作為另外一個(gè)部件。您可以使用任何可以訪問(wèn)Office XML格式的工具或應(yīng)用程序來(lái)使用這個(gè)XML部件。
在Office產(chǎn)品中使用新的文件格式
在Office產(chǎn)品中,新的文件格式的實(shí)現(xiàn)有很多通用的部件,也有很多組件是特定于每個(gè)產(chǎn)品的。
Excel 2007中的文件格式結(jié)構(gòu)
除了擁有每個(gè)Office產(chǎn)品通用的部件(例如XML數(shù)據(jù)部件,關(guān)系部件,和多媒體部件)以外,Excel還為工作簿、工作表,以及像圖表、數(shù)據(jù)透視圖、數(shù)據(jù)透視表等實(shí)體提供了單獨(dú)的部件。
PowerPoint 2007中的文件格式結(jié)構(gòu)
在PowerPoint的文件格式中,使用了許多與其它產(chǎn)品相同的部件,同時(shí)還使用了一些特定于幻燈片演示文稿的對(duì)象,例如幻燈片部件,母版部件,演示文稿部件等。
Word 2007中的文件格式結(jié)構(gòu)
同樣,Word也使用了關(guān)于文檔屬性、樣式和格式、頁(yè)腳、頁(yè)眉、注釋等額外的部件。
修改 Office XML 文件格式來(lái)自定義用戶界面
下面的步驟展示了如何在Excel 2007中創(chuàng)建一個(gè)自定義的用戶界面(UI),它通過(guò)修改一個(gè)啟用宏的工作簿文件,包含了調(diào)用一個(gè)自定義宏的組件。在這個(gè)例子中,您將實(shí)現(xiàn):
• |
使用宏創(chuàng)建一個(gè)Excel工作簿,并將工作簿保存為Office XML格式的啟用宏文件(.xlsm)。
|
• |
創(chuàng)建一個(gè)簡(jiǎn)單的界面,其中包含一個(gè)tab,一個(gè)group,和一個(gè)button。
|
• |
為button指定一個(gè)回調(diào)事件,讓它來(lái)調(diào)用您在文檔中創(chuàng)建的宏。
|
• |
修改啟用宏的文檔的容器文件的內(nèi)容,將它指向您擴(kuò)展的自定義文件。
|
• |
將啟用宏的文件保存,并在Excel中打開。
|
在Excel中創(chuàng)建一個(gè)啟用宏的Office XML格式的文件
1.
|
打開Excel 2007.
|
2.
|
點(diǎn)擊開發(fā)工具選項(xiàng)卡,然后點(diǎn)擊Visual Basic。
注意:
如果您無(wú)法看到開發(fā)工具選項(xiàng)卡,那么您需要確認(rèn)您自己是一名開發(fā)人員。在Excel中,點(diǎn)擊Microsoft Office按鈕,點(diǎn)擊Excel選項(xiàng),選擇常用,然后選擇在功能區(qū)顯示“開發(fā)工具”選項(xiàng)卡。這是一個(gè)全局的文墨,這樣會(huì)在所有其它的Office應(yīng)用程序當(dāng)中將您確認(rèn)為一名開發(fā)人員。
|
3.
|
在Visual Basic 編輯器中,雙擊ThisWorkbook 來(lái)打開代碼窗口。
|
4.
|
鍵入下列VBA代碼,然后關(guān)閉Visual Basic編輯器:
Visual Basic
Sub MyButtonMacro(ByVal ControlID As IRibbonControl) Msgbox("Hello world") End Sub
|
5.
|
將工作簿保存為Office XML 格式的啟用宏的文件(.xlsm)。
|
創(chuàng)建包含標(biāo)記的XML文件來(lái)修改UI
1.
|
在您的桌面上創(chuàng)建一個(gè)叫做customUI的目錄。
|
2.
|
在文本編輯器中打開一個(gè)新文件,然后將它保存為customUI.xml 并放置到customUI目錄。
|
3.
|
向文件中添加下列代碼:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="true">
<tabs>
<tab id=":CustomTab" label="My Tab">
<group id="SimpleControls" label="Sample Group">
<button id="Button1" size="large" label="Large Button" onAction="ThisWorkbook.MyButtonMacro" />
</group>
</tab>
</tabs>
</ribbon>
</customUI>
|
接下來(lái),您需要修改之前創(chuàng)建的啟用宏的文件容器中包含的文件:
1.
|
為工作簿文件添加一個(gè).zip擴(kuò)展名,然后雙擊打開它。
|
2.
|
將customUI目錄從桌面拖拽到ZIP文件當(dāng)中,從而將自定義的文件添加到容器當(dāng)中。
|
3.
|
將.rels文件提取到您的桌面上。其中一個(gè)叫做_rels的目錄中包含了一個(gè).rels文件,將它復(fù)制到您的桌面上。
|
4.
|
打開.rels文件,并在最后一個(gè)Relationship標(biāo)記和Relationships標(biāo)記之間添加下列行。它在工作簿文件和自定義的文件之間創(chuàng)建一個(gè)關(guān)系。
<Relationship Id="someID" Type="http://schemas.microsoft.com/office/2006/relationships/ui /extensibility" Target="customUI/customUI.xml" />
|
5.
|
關(guān)閉并保存文件。
|
6.
|
將_rels目錄從桌面拖拽回容器文件,并選擇覆蓋現(xiàn)有的文件。
|
7.
|
刪除工作簿文件的.zip擴(kuò)展名,使它恢復(fù)到原來(lái)的文件名。
|
8.
|
打開工作簿,這時(shí)將會(huì)看到在功能區(qū)中會(huì)顯示一個(gè)My Tab選項(xiàng)卡。
|
9.
|
點(diǎn)擊按鍵,然后會(huì)顯示一個(gè)消息框。
|
結(jié)論
用戶、企業(yè)、和開發(fā)人員都將從2007版本的Microsoft Office system的Office XML格式中受益匪淺。作為一種開放的,基于XML的默認(rèn)文件格式,新的文件格式為您提供了創(chuàng)建更多解決方案和應(yīng)用場(chǎng)景的機(jī)會(huì)。您可以將文檔作為數(shù)據(jù)源訪問(wèn),在Office應(yīng)用程序以外處理它們,并且在企業(yè)解決方案中進(jìn)行處理。企業(yè)可以將現(xiàn)有的業(yè)務(wù)系統(tǒng)與Microsoft Office system平臺(tái)集成,其中2007 Office版本和新的基于XML的文件格式都將對(duì)您有著巨大的幫助。
相關(guān)資源
更多相關(guān)信息,請(qǐng)查閱下列資源: