xlsx是以zip格式壓縮的,把xlsx重新命名為zip,然後再解壓。就可以得到裡面的資料檔案了。
_rels
docprops
xl[content_types].xml
我們只重點檢視xl目錄下面的檔案
sharedstrings.xml 這個檔案儲存著所有的字串,比如」學生」,」編號」,」1號」等。
styles.xml 這個檔案是樣式,裡面記載著單元格的格式,比如字型,日期格式等。
worksheets/sheet1.xml
worksheets/sheet2.xml
worksheets/sheet3.xml
對應三張工作表,具體名稱依據你的xlsx裡的工作表名稱。
因為時間緊迫,所以我只分析sharedstrings.xml和sheet1.xml.其它檔案的情況參見參考資料。
以這份xlsx為例,隨便找2個空單元格合併下
副檔名改為zip,再解壓縮得到sheet1.xml去掉頭尾一些節點,行列資料在sheetdata節點中
從中看出
row代表的是一行
c是該行下屬的列
c節點的r屬性代表的是單元格編號
v代表的是該單元格的值或字串索引
f代表的是公式
c節點的t=」s」代表,這個單元格是字串,而其子節點代表的是這個字串在sharedstrings.xml中的索引
c節點的s=」1″代表,這個單元格是日期型的。這裡的日期型是日期和1900-1-1相差的天數來儲存的
c節點的s=」數字」代表,這個單元格的樣式編號,去styles.xml查詢。這裡我直接忽略了,感興趣的同學閱讀參考資料。
對於合併單元格的問題,我原先想分析出單元格合併情況。實際上,在單元格合併後,被合併的2個單元格仍然是作為乙個存在的,另乙個是不會寫入資料的。所以忽略合併單元格的情況。感興趣的同學可以分析sheet1.xml中的mergecells節點。
現在來看sharedstrings.xml,去掉一些資料
可以看出這個檔案存放的是字串
每個字串在節點下的節點中,但我們不能直接提取節點。因為這個xlsx比較簡單,但實際中碰到的sharedstring.xml卻還要複雜,貼上部分:
C 操作Word文件(Office 2007)
首先引入類庫,microsoft.office.interop.word,然後進行程式設計。如下 using system using system.collections.generic using system.componentmodel using system.data using sys...
office 2007安裝 簡單試用體驗
從朋友們得到office 2007企業版,裝了下,感受了它相對豪華的介面及增加的n多功能,要說明的,這只是一小部分功能或是介面的預覽罷了,不涉及關於具體功能應用和技巧性的東西,高階操作功能有待於各位的發現啦。1 新的office安裝後有九個元件,當然其中有我們相當熟知的word excel powe...
使用組策略部署Office 2007
office 2007 企業版包括以下產品 microsoft office access 資料庫。microsoft office excel microsoft office groove microsoft office onenote microsoft office outlook mic...