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)
上一篇 2022年7月1日 下午6:36
下一篇 2022年7月1日 下午6:36


相关推荐

  • 结巴分词基础用法

    结巴分词基础用法结巴分词基础

    2025年6月6日
    4
  • python常用模块大全_日常办公会用到的python模块

    python常用模块大全_日常办公会用到的python模块mathmath.ceil(a):用来返回≥a的最小整数math.floor(a):用来返回≤a的最大整数round(a[,b])如果没有参数b,只有a,round()作用是四舍五入如果

    2022年7月29日
    14
  • 如何卸载干净JAVA?「建议收藏」

    如何卸载干净JAVA?「建议收藏」有很多小伙伴下载了JAVA的JDK(java开发工具包)并安装成功运行后,发现自己下错了版本。凉了,半天白搞了。卸载之后又发现在再安装出现安装不了的问题。这往往是因为JAVA并没有卸载完全。今天我们就看看如何完全卸载JAVA。JAVA卸载有两种方式。手动和用JAVA卸载工具。第一种,手动。1.打开控制面板,找到卸载程序,在找到java的程序,并卸载。2.这样之后,java虽然看不见了。但是还没有卸载干净。打开命令行窗口,输入命令regited。打开注册表窗口,删除ja…

    2022年5月19日
    42
  • windows/mfc程序中使用OpenGL的多重采样功能

    windows/mfc程序中使用OpenGL的多重采样功能windows程序中使用OpenGL的多重采样功能学过opengl基础的人都知道,glEnable(GL_POLYGON_SMOOTH)/glEnable(GL_LINE_SMOOTH)/glEnable(GL_POLYGON_SMOOTH)keyi欢迎使用Markdown编辑器你好!这是你第一次使用Markdown编辑器所展示的欢迎页。如果你想学习如何使用Markdown编辑器,…

    2022年5月11日
    45
  • linux tomcat宕机自动启动脚本,tomcat宕机自动重启脚本「建议收藏」

    linux tomcat宕机自动启动脚本,tomcat宕机自动重启脚本「建议收藏」#!/bin/bash#获取tomcat进程ID/usr/share/tomcatTomcatID=$(ps-ef|greptomcat|grep-w‘tomcat‘|grep-v‘grep‘|awk‘{print$2}‘)#tomcat启动程序(这里注意tomcat实际安装的路径)#StartTomcat=/usr/local/tomcat/bin/startup.s…

    2022年7月23日
    16
  • 菜鸟也疯狂,易语言自绘控件__进度条、滑块条[通俗易懂]

    菜鸟也疯狂,易语言自绘控件__进度条、滑块条[通俗易懂]进度条的自绘,关键的是用GetWindowLong得到一个进度条的结构:.版本2.数据类型进度条结构   .成员hWnd,整数型,,,进度条窗口句柄   .成员dwStyle,整数型,,,进度条窗口样式   .成员iMin,整数型,,,最小最大进度   .成员iMax,整数型,,,当前进度值

    2022年7月13日
    21

发表回复

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

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