日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

excel: 开放的XML文件格式

發(fā)布時間:2023/12/15 综合教程 35 生活家
生活随笔 收集整理的這篇文章主要介紹了 excel: 开放的XML文件格式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

眾所周知,Office2007采用了新的文件格式。例如,在Excel2007中,當(dāng)您保存文件時會默認(rèn)以xlsx為擴展名來保存,采用這種 格式的文件不包含宏;如果要保存帶有宏的工作簿,那么應(yīng)該以xlsm為擴展名保存。(當(dāng)然,您可以在Excel選項中更改保存文件時默認(rèn)的文件格式)。
新的文件格式有:

xlsx:不帶有宏的工作簿文件。

xlsm:包含宏的工作簿文件。

xltx:不帶有宏的工作簿模板文件。

xltm:包含宏的工作簿模板文件。

xlsa:加載項文件。

xlsb:與舊的xls文件格式相同,但是可以兼容新特性的二進制文件。

xlsk:備份文件。

除xlsb文件外,其他的文件都是可以打開的XML文件,意味著其他文件可以讀寫這些文件。
Office2007
的新文件格式稱為開放的XML文件格式,這是一種新的基于XML的文件格式。新的文件格式改進了文件和數(shù)據(jù)管理、數(shù)據(jù)恢復(fù)和可交互操作的能力。采用這種格
式的文件實際上是壓縮文件,您可以將其解壓縮到文件夾中查看文件內(nèi)部的情況。任何支持XML的應(yīng)用程序都能訪問和處理Office2007文件信息,即
只要提供了對XML的支持,那么非Office應(yīng)用程序軟件也可以方便地創(chuàng)建和操縱Office文件。即便是在系統(tǒng)沒有安裝Office軟件的情形下,也
可以查看文件的內(nèi)容。
下面,主要以Excel2007為例,并使用JanKarelPieterse研究Excel2007新的文件格式的工作簿示例,來了解Office2007開放的XML文件格式。
探索Office2007XML文件格式

的XML文件格式基于壓縮的ZIP文件格式規(guī)范,每個ZIP容器由許多包含Microsoft稱作“部件”的XML文件組成。大多數(shù)部件是描述工作簿數(shù)
據(jù)、元數(shù)據(jù)、文檔信息的XML文件,非XML文件例如代表圖片或OLE對象的二進制文件也包含在ZIP文件中。也有描述部件之間關(guān)系的相關(guān)聯(lián)的部件,從而
提供工作簿文件的結(jié)構(gòu),這些部件是工作簿的內(nèi)容和內(nèi)容部件如何組合在一起的關(guān)系詳情。
下面演示了開放的XML格式的文件容器。

分析Excel2007文件

個Excel2007文件實際上就是一個壓縮了的容器(ZIP文件),其中包含一些文件夾和文件。您可以將Excel2007文件的擴展名更改
為.zip或.rar,然后雙擊該文件來或者將其解壓縮到特定的文件夾中來查看其包含的文件夾和文件。在ZIP文件中,可以看到一些XML組件,其中一些
獨立的XML文件存儲了文檔所有的設(shè)置(setting)、樣式(style)、繪圖(drawing)和數(shù)據(jù)等內(nèi)容。
例如,新建一個
Excel2007工作簿,在該工作簿中輸入數(shù)據(jù)、插入圖表、放置控件和圖片及圖示、輸入VBA代碼等,然后將該工作簿命名為test1.xlsm,關(guān)
閉該工作簿。將工作簿test1.xlsm的擴展名更改為test1.xlsm.zip,并解壓縮到文件夾中??梢钥吹狡鋁ML文件包結(jié)構(gòu)如圖1所示。

圖1:Excel2007的.xlsm文件的內(nèi)容
該工作簿文件包含3個根文件夾和1個名為[Content_Types].xml的文件。其中:

_rels文件夾:有一個名為.rels的文件,包含關(guān)于程序包關(guān)系的信息。其中有三個關(guān)系屬性:Id為任意字符串,在.rels文件中必須是唯一的;Type表示關(guān)系的類型;Target指定包含關(guān)系的目標(biāo)的文件夾和文件。
很多子文件夾內(nèi)部都包含有一個名為_rels的文件夾,這些文件夾都包含有定義與其他部分之間關(guān)系的XML文件。
關(guān)系:Excel2007文檔由部件組成。這些部件通過定義在不同的XML文件里的關(guān)系聯(lián)系在一起。

docProps
文件夾:包含各種XML文件,描述文件屬性和應(yīng)用程序設(shè)置。類似于單擊Office按鈕,選擇“準(zhǔn)備——屬性”后看到的內(nèi)容。docProps文件夾包含
著至少一個名為app.xml的文件和一個名為core.xml的文件。這些文件包含著Excel文件的元信息,例如創(chuàng)建者的名字、修改的和創(chuàng)建的日期。

xl文件夾:包含文件的核心部分。根據(jù)工作簿中的內(nèi)容,該文件夾中含有一些子文件夾,并且還含有工作簿設(shè)置的XML文件。如果工作簿中含有VBA代碼,那么文件夾中還有以bin為擴展名的二進制文件。

[Content_Types].xml文件:列出了包括在Excel文件程序包中其它部件的內(nèi)容類型。

打開名為“xl”的文件夾,其包含的內(nèi)容如圖2所示。

圖2:文件夾“xl”中的內(nèi)容
可以看出,除VBA工程、圖片等特殊情形以二進制格式存儲外,幾乎所有文件都是XML文件。下面列舉一些。

_rels:其中的關(guān)系文件workbook.xml.rels定義了工作簿、數(shù)據(jù)和格式部件的關(guān)系。

activeX:包含控件設(shè)置的XML文件。

charts:包含圖表設(shè)置的XML文件。

chartsheets:包含工作簿中每個圖表數(shù)據(jù)的XML文件。

diagrams:描述工作簿中形狀(SmartArt)的XML文件。

media:包含內(nèi)嵌的媒體文件,例如GIF文件、JPG文件等。

tables:包含帶有每個表的數(shù)據(jù)的XML文件。

theme:包含工作簿主題的數(shù)據(jù)的XML文件。

worksheets:包含工作簿中每個工作表的XML文件。

除一些文件夾外,還有一些單獨的XML文件。例如,workbook.xml文件包含的部分內(nèi)容如圖3所示。

圖3:文件“workbook.xml”包含的部分內(nèi)容

這個文件中,我們可以找到各個工作表對應(yīng)的id號,即r:id。如果希望對某工作表進行操作,那么先找到其r:id。例如,假設(shè)我們想在工作表
Comments中添加內(nèi)容,則需要找到包含該工作表內(nèi)容的xml文件,即要找到圖3中工作表對應(yīng)的r:id。在圖3中該工作表的r:id為rId7。
在文件夾“_rels”中,包含著一個名為“workbook.xml.rels”的文件,包含著XML代碼,如圖4所示。

圖4:在文件“workbook.xml.rels”中,指明Id值所對應(yīng)的工作表
如圖4所示,名為“sheet7.xml”的文件代表工作表“Comments”(rId7)。下圖5為文件夾“worksheets”中的文件列表。

圖5:文件夾“worksheets”中的文件列表
使用壓縮包中的XML文件來操作Office文檔
讀取單元格的值
工作表“Comments”中的內(nèi)容如圖6所示。

圖6:工作表Comments中的內(nèi)容,單元格B2中包含批注
sheet7.xml文件的內(nèi)容如圖7所示。

圖7:文件sheet7.xml中的內(nèi)容,顯示了單元格A1、A2、A3
如何知道單元格A1中的內(nèi)容呢?看看圖7中的內(nèi)容:
<cr="A1"t="s">

,可以知道單元格A1中包含字符串(t=”s”)。下一行:
<v>28</v>

告訴我們需要在“xl”文件夾中名為sharedStrings.xml的文件里找到項目數(shù)值28。該文件頂部的內(nèi)容如圖8所示。

圖8:文件sharedStrings.xml頂部的內(nèi)容
表明在該工作簿中有45個唯一字符串。由于索引值是以0為基數(shù)開始,圖7中的內(nèi)容告訴我們需要的索引值是28,因此我們需要找到sharedStrings.xml文件中第29個
<si>

條目。如圖9所示。

圖9:文件sharedStrings.xml中的第29個si即為工作表Comments中單元格A1的內(nèi)容
在單元格中添加文本
現(xiàn)在,讓我們在工作表Comments中添加新的文本數(shù)據(jù)。首先,修改sharedStrings.xml文件頂部的字符串?dāng)?shù),將圖8中的代碼修改如圖10所示。

圖10:將文件sharedStrings.xml頂部的字符串?dāng)?shù)修改為46
接下來,在該文件中添加新字符串。在該文件的相應(yīng)添加新字符串,如圖11所示。

圖11:在文件sharedStrings.xml中添加新字符串
然后,修改sheet7.xml文件,以添加帶有新字符串的行,如圖12所示。

圖12:在文件sheet7.xml中添加代碼以添加帶有新字符串的行
此時,工作表如圖13所示。

圖13:編輯XML文件后的結(jié)果
在單元格中添加數(shù)字
在單元格中添加數(shù)字與添加文本相似,但有兩點不同:數(shù)字是直接保存在工作表xml文件中并且可以添加數(shù)字格式。
例如,在前面的sheet7.xml文件中,數(shù)字單元格的格式為“常規(guī)”并且沒有設(shè)置專門的格式。
通過索引值來定義單元格格式,例如下面的代碼表示在單元格A3中顯示的是日期:
<rowr="3"spans="1:2"><cr="A3"s="34"><v>39218</v></c></row>


引值34指向文件包中的另一個文件:styles.xml,該文件的開始部分是自定義數(shù)字格式列表,下面一部分是稱作cellXfs的單元格格式交叉引用
轉(zhuǎn)到自定義數(shù)字格式列表。在工作表xml文件中的s=”34″指向該節(jié)點(cellXfs節(jié)點)的某一元素。由于索引值基于0,因此索引值34代表列表中
的第35項(即最后一項),如圖14所示。

圖14:索引值34在列表中的項目
單元格格式交叉引用依次引用numFormatId列表、FontId列表、fillId列表以及borderId列表,都包含在Styles.xml文件中。

此,不能直接添加格式化單元格到工作表,必須檢查特定的單元格格式組合是否已經(jīng)存在于單元格格式交叉引用中(在styles.xml中),這涉及到要為各
個元素檢查所有單個的格式引用。同時,如果格式組合是新的,則必須擴展帶有新格式的格式元素列表,并更新樣式交叉引用。當(dāng)然,也需要更新列表的所有
“count”參數(shù)。
上文演示的示例工作簿下載:

改變窗體控件的屬性
通常,窗體控件與控件工具箱中的控件不同,例如不能改變按鈕的背景色、不能改變組合框的字體和顏色等。下面來探索如何利用工作簿文件包更改這些屬性。
例如,工作簿FormControls.xlsm的工作表Sheet1如圖15所示。

圖15:包含一些窗體控件的演示工作簿
現(xiàn)
在,來分析這些窗體控件存放的位置。將工作簿FormControls.xlsm重命名為FormControls.xlsm.zip。雙擊該文件,然后
打開文件夾“xl”,接著打開文件夾“worksheets”。打開“sheet1.xml”文件,可以找到如圖16中的條目。

圖16:文件sheet1.xml中指定窗體控件的條目
要找到“rId2”,打開“_rels”文件夾,如圖17所示。

圖17:打開文件夾“_rels”
打開“sheet1.xml.rels”文件,找到rId2,如圖18所示。

圖18:文件“sheet1.xml.rels”中Id為rId2的條目
這告訴我們應(yīng)該查找文件“..xldrawingsvmlDrawing1.vml”。
每個工作表中有一個vmlDrawing?.vml文件,包含著控件或者在該vml文件中捕捉到的任何其它對象。
現(xiàn)在,將vmlDrawing1.vml文件拖到桌面上,然后打開它。找到定義復(fù)選框的部分,如圖19所示。

圖19:文件vmlDrawing1.vml中定義Excel工作表中復(fù)選框的部分
通常,我們不能改變窗體控件中復(fù)選框的字體。現(xiàn)在,讓我們在vmlDrawing1.vml文件中改變其字體,將圖19中的內(nèi)容:
<spanstyle="color:#a00000;font-family:ArialBlack;">CheckBox3</span>

修改為:
<spanstyle="color:#a00000;font-family:CourierNew;">CheckBox3</span>

保存并關(guān)閉該vml文件,然后將其拖回壓縮文件夾的drawings文件夾中,再將文件名稱FormControls.xlsm.zip改為FormControls.xlsm?,F(xiàn)在,打開工作簿FormControls.xlsm后,復(fù)選框如圖20所示。

圖20:修改字體后的窗體復(fù)選框控件
在這個vml文件中,還可以看出控件的其它信息,例如控件的大小和位置,即Anchor。如圖19中的內(nèi)容:
<x:Anchor>4,30,2,0,8,39,3,18</x:Anchor>


中,前2個數(shù)字指定控件左上角的水平位置:第1個數(shù)字是所在列數(shù)(基于0),第2個數(shù)字代表控件基于該列左側(cè)的偏移量;隨后的2個數(shù)字指定控件左上角的垂
直位置:第1個數(shù)字是所在行號(基于0),第2個數(shù)字代表控件基于該行頂部的偏移量;最后的4個數(shù)字指定控件的右下角的位置。
也就是說,在上面的xml中,控件的左上角位于列E、第3行、向右移29像素,右下角位于單元格I4,向右移38像素,相對于左上角下移18像素。
也可以改變復(fù)選框字體的顏色,將內(nèi)容:
<spanstyle="color:#a00000;font-family:CourierNew;">CheckBox3</span>

修改為:
<spanstyle="color:#ff0066;font-family:CourierNew;">CheckBox3</span>

修改后的效果如圖21所示。

圖21:修改窗體復(fù)選框控件中字體的顏色
上文演示的示例工作簿下載:

通過上面的介紹后,大家可以尋找并更改相關(guān)的xml文件內(nèi)容,以實現(xiàn)在工作表界面中無法實現(xiàn)的操作。
結(jié)語
XML
是一種可擴展標(biāo)記語言,可顯示任何平臺或應(yīng)用程序可讀的數(shù)據(jù),并且XML文件是一種簡單的文本文件,可以使用記事本創(chuàng)建,任何程序都可以很容易地從中讀取
數(shù)據(jù),而且這種文件格式也不易損壞。而MicrosoftOffice引入的新的開放的XML文件格式,就具備了這些優(yōu)點。它使得我們可以使用其他應(yīng)用
程序軟件來讀取或編輯Office文檔,例如無須打開Excel就能修改工作簿、插入新工作表等。此外,與舊的二進制格式文件相比,新的文件格式也減少了
工作簿損壞的機率,并且能夠根據(jù)文件包內(nèi)的相關(guān)文件來修復(fù)文件,例如刪除或破壞了XML文件的一些字節(jié)后,在Excel中仍然可以讀取數(shù)據(jù)的其余部分。使
用新文件格式的文檔數(shù)據(jù)實際上是文本文件,這使得文件大小也比相應(yīng)的二進制文檔要小。同時,文檔組織也是結(jié)構(gòu)化的,因此可以提取其中單獨的元素。
還有很重要的一點是,新的XML文件格式使得可以通過自定義功能區(qū)來重新調(diào)整用戶界面,實現(xiàn)新增的功能。

總結(jié)

以上是生活随笔為你收集整理的excel: 开放的XML文件格式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。