OOXML,XLSX分析

OOXML,XLSX分析07以上的xlsx是使用了OOXML和zip,将后缀修改为.zip,就可以看到文件,主要分析xl目录下的文件,如图:主要数据文件在xl目录下面styles.xml里面存放着excel的样式数据很

大家好,又见面了,我是你们的朋友全栈君。

07以上的xlsx是使用了OOXML和zip,将后缀修改为.zip,就可以看到文件,主要分析xl目录下的文件,如图:

 <span role="heading" aria-level="2">OOXML,XLSX分析

主要数据文件在xl目录下面

<span role="heading" aria-level="2">OOXML,XLSX分析

styles.xml里面存放着excel的样式数据

<span role="heading" aria-level="2">OOXML,XLSX分析

很容易看出包含,字体,边框,单元格样式信息。

sharedStrings.xml存储的excel中的字符串,excel中的字符串都是放在这个里面,共享字符串,所以往往excel的文件会比txt小。

worksheets里面是excel的sheet文件

<span role="heading" aria-level="2">OOXML,XLSX分析

打开xml

<span role="heading" aria-level="2">OOXML,XLSX分析

 

其中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, “@”

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154564.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CSS rgb颜色产生原理 & 颜色对照表

    CSS rgb颜色产生原理 & 颜色对照表本文转自:http://www.cnblogs.com/iteakey/articles/3016093.htmlHTMLCSS颜色对照表FFFFFF#DDDDDD#AAAAAA#888888#666666#444444#000000#FFB7DD#FF88C2#FF44AA#FF0088#C10066#A2

    2022年5月13日
    109
  • android之java程序性能优化(不断补充)

    在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。一、避免在循环条件中使用复杂表达式在不做编译优化的情况下,在循环中,循环条件会被反复计算,如果不使用复杂表达式,而使循环条件值不变的话,程序将会运行的更快。还有一个原则,决不在一个For语句中第二次调用一个类的方法例子: class cel

    2022年3月9日
    53
  • Intellij IDEA2021.1创建Java web项目(超详细)

    Intellij IDEA2021.1创建Java web项目(超详细)IntellijIDEA2021.1点击next填写项目的名称以及位置,finish右键项目,选择addframeworksupport完成之后,项目结构变成了这样接下来,我们在WEB-INF下创建classes,lib文件夹编辑项目结构将outputpath的路径改成classes文件夹的路径接下来点击dependencies,选择加号,选择jarsordirectories点击后,他会弹出一个文件选择框,这里选择lib文件所在位置,之后按照下面这张图

    2022年8月25日
    8
  • tomcat7配置教程_Tomcat热部署

    tomcat7配置教程_Tomcat热部署1.Tomcat依赖于JDK,需要提前安装好JDK,参考另外一篇文章:JAVA安装部署2.到官网下载Tomcat7,解压到相关路径即可。Tomcat官网3.从Tomcat7之后的版本都不需要配置环境变量,在bin目录下,查看starup.bat:意思是如果bin目录下面存在catalina.bat文件,就可以访问tomcat页面了,代表安装成功了。PS:如果没…

    2025年6月13日
    0
  • NAT( 网络地址转换) 实现

    NAT( 网络地址转换) 实现

    2022年1月2日
    39
  • 浅析Java中float和double

    浅析Java中float和double需要注意的是 java 中小数默认为 double 类型的 如果想要使用 float 类型的 则需要在小数后面加 f 例如 floata 3 14f 不带符号的话 最小值 Float MIN VALUE 1 4E 45 2 的 149 次方 最小值 Double MIN VALUE 4 9E 324 2 的 1074 次方 最大值 Float MAX VALUE 3 E38 2 的 128 次方 1 最大

    2025年6月14日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号