OOXML,XLSX分析


07以上的xlsx是使用了OOXML和zip,將后綴修改為.zip,就可以看到文件,主要分析xl目錄下的文件,如圖:

 

主要數據文件在xl目錄下面

styles.xml里面存放着excel的樣式數據

很容易看出包含,字體,邊框,單元格樣式信息。

sharedStrings.xml存儲的excel中的字符串,excel中的字符串都是放在這個里面,共享字符串,所以往往excel的文件會比txt小。

worksheets里面是excel的sheet文件

打開xml

 

其中r="C2"表示excel的C2這個單元格,t="s"表示該單元格是字符串,val是2表示在sharedStrings.xml里面第二個共享的字符串。

其中r="N2"表示excel的N2這個單元格,s="2"表示該單元格有樣式,在styles.xml里面的cellXfs里面的第3個樣式(0是第一個)。

仔細分析cellXfs會發現<xf borderId="0" fillId="0" fontId="0" numFmtId="0" xfId="0"/>里面有numFmtId,表示數字的格式,每個數字代表不同的樣式,看POI的源碼org.apache.poi.ss.usermodel.BuiltinFormats里面能找到每個數字代表的含義:

0, "General"

1, "0"

2, "0.00"

3, "#,##0"

4, "#,##0.00"

5, "$#,##0_);($#,##0)"

6, "$#,##0_);[Red]($#,##0)"

7, "$#,##0.00);($#,##0.00)"

8, "$#,##0.00_);[Red]($#,##0.00)"

9, "0%"

0xa, "0.00%"

0xb, "0.00E+00"

0xc, "# ?/?"

0xd, "# ??/??"

0xe, "m/d/yy"

0xf, "d-mmm-yy"

0x10, "d-mmm"

0x11, "mmm-yy"

0x12, "h:mm AM/PM"

0x13, "h:mm:ss AM/PM"

0x14, "h:mm"

0x15, "h:mm:ss"

0x16, "m/d/yy h:mm"

// 0x17 - 0x24 reserved for international and undocumented

0x25, "#,##0_);(#,##0)"

0x26, "#,##0_);[Red](#,##0)"

0x27, "#,##0.00_);(#,##0.00)"

0x28, "#,##0.00_);[Red](#,##0.00)"

0x29, "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)"

0x2a, "_($* #,##0_);_($* (#,##0);_($* \"-\"_);_(@_)"

0x2b, "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)"

0x2c, "_($* #,##0.00_);_($* (#,##0.00);_($* \"-\"??_);_(@_)"

0x2d, "mm:ss"

0x2e, "[h]:mm:ss"

0x2f, "mm:ss.0"

0x30, "##0.0E+0"

0x31, "@"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM