windows的office套装例如excel文件,ppt等文件,在我们平时看时后缀名是xls/xlsx/pptx等后缀时,实际上这是一个压缩包,为了证实和研究excel文件的底层,我们可以复制一个xls文件,然后将其后缀改成zip,然后利用解压缩软件进行解压,
如下,会得到一堆文件


解压后,进入目录进去观察
为了方便观察,我将其用IDEA打开,如下是解压后的一堆文件的目录结构,重点关注我标出来的两个文件,其中标出来的两个文件涉及读取excel时需要用到。

sharedStrings.xml:存放的是一些公用的数据,相当于一个Set集合,之所以这样设计猜测是为了节省空间。
sheet1.xml:存储第一个表格的内容,但是里面只有数字(这些数字对应着上面Set的下标),故需要联合两个文件才能得到我们想要的数据。

├── [Content_Types].xml (组件描述文件)
├── _rels (包的关联组件)
├── docProps (文档的属性)
│   ├── app.xml
│   ├── core.xml
│   └── custom.xml
└── xl ├── _rels (工作簿组件的关联组件)│   └── workbook.xml.rels├── charts (图表组件的目录)│   ├── _rels (图表组件的关联组件目录)│   │   ├── chart1.xml.rels (图表组件的关联组件)│   │   └── chart2.xml.rels│   ├── chart1.xml (表格组件)│   ├── chart2.xml (表格组件)│   ├── colors1.xml (颜色组件)│   ├── colors2.xml (颜色组件)│   ├── style1.xml (样式组件)│   └── style2.xml (样式组件)├── drawings (绘图组件的目录)│   ├── _rels (绘图组件的关联组件目录)│   │   └── drawing1.xml.rels (绘图组件的关联组件)│   └── drawing1.xml├── media (多媒体文件目录)│   └── image1.png├── sharedStrings.xml (共享字符串组件)├── styles.xml (样式组件)├── tables (表格组件的目录)│   └── table1.xml (表格组件)├── theme (主题组件的目录)│   └── theme1.xml (主题组件)├── workbook.xml (工作簿组件)└── worksheets (工作表组件的目录)├── _rels (工作表组件的关联组件目录)│   └── sheet1.xml.rels (工作表组件的关联组件)└── sheet1.xml (工作表组件)

举一个例子说明一下内部关系。
如下是sheet1.xml中的内容

为了找出规律,找到我们在excel看到的那个数据,展开这里的row,看下市州、区县(第四行它们是怎么通过xml表示的)

很明显市州两个字要表示在sheet中得从sharedStrings.xml中取,而sharedStrings.xml相当于一个池、不重复的有序集合


场景设计

假设excel的数据很大,有100w条数据,意味着这里有100w行的row,那么这个数据就很大。
那么只能一段一段去取,例如每次取1w条row,而每一个row我们取到了这个数字后,然后通过sharedStrings.xml(到时候用一个LinkedHashSet去存,或者直接ArrayList即可,因为本身就是已经去重过的)

2021/9/5
00:13 暂时更新到这里,准备进行实现

excel文件底层xml分析,如何实现高效解析excel相关推荐

  1. unity向服务器发送xml文件格式,Unity读取Excel文件转换XML格式文件的方法

    Unity读取Excel文件转换XML格式文件的方法 发布时间:2020-06-23 09:34:33 来源:亿速云 阅读:107 作者:清晨 不懂Unity读取Excel文件转换XML格式文件的方法 ...

  2. 使用Python批量实现某一Excel文件中每3行数据存一个Excel文件

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 远芳侵古道,晴翠接荒城. 大家好, ...

  3. 如何合并多个Excel文件(相同列结构)至一个Excel文件中

    如何合并多个Excel文件(相同列结构)至一个Excel文件中 1. 将待合并数据格式一样的Excel文件放置在一个文件夹下 2. 新建一个Excel空文件,用来存放合并数据 3. 点击[数据]> ...

  4. 发布一个biztalk 解析Excel文件到xml消息的管道组件

    <?xml:namespace prefix = o /> <?xml:namespace prefix = v /> 此pipeline component主要功能是通过OD ...

  5. 一款开源的强横数据可视化分析工具,支持对excel文件进行转换分析

    Pandasgui是一个开源的python模块,它为pandas创建了一个GUI界面,我们可以在其中使用pandas的功能分析数据和使用不同的功能,以便可视化和分析数据,并执行探索性数据分析. 更重要 ...

  6. python如何自动读取excel文件_基于Python的接口自动化-读写excel文件

    引言 使用python进行接口测试时常常需要接口用例测试数据.断言接口功能.验证接口响应状态等,如果大量的接口测试用例脚本都将接口测试用例数据写在脚本文件中,这样写出来整个接口测试用例脚本代码将看起来 ...

  7. Java多线程读取excel文件_解决springboot 多线程使用MultipartFile读取excel文件内容报错问题...

    springboot项目开启多线程 启动类加注解开启 @EnableAsync,实现类方法加注解 @Async 前端页面 报错信息 java.io.FileNotFoundException: C:\ ...

  8. python创建excel文件报错_[转]用Python读写Excel文件

    大部分Windows环境的开发人员都会选择Microsoft Excel API.实际上不仅仅是Python,几乎各种语言都有相应的方法使用它,因为核心的逻辑完全是由Microsft Excel自身提 ...

  9. excel文件数据导入mysql数据库中_将excel里面的数据导入mysql数据库中

    展开全部 条件:PC端已经安装Navicat工具,并636f70793231313335323631343130323136353331333363386161且已经成功连接至数据库. 1.点击鼠标右 ...

最新文章

  1. B-监狱逃脱(BFS)
  2. 希捷硬盘固件修复工具_电脑升级高速硬盘后的差异竟如此大!酷鱼510性能实测...
  3. android 多结点进度条,Android使用Kotlin实现多节点进度条
  4. 程序员讨论技术问题时说话都很直接,哪个国家都不例外
  5. JUnit与EasyMock合作
  6. 后台系统可扩展性学习笔记(三)DNS机制原理
  7. [转]CPoint+CSize+CRect学习大纲
  8. python 调用gpu算力_数据科学家需要算力,GPU 如何实现?-控制器/处理器-与非网...
  9. linux打开core文件,[转载]linux下core文件设置与查看
  10. 如何杀死远程服务器到本机的tcp连接
  11. linux 信号集 同步,linux信号集
  12. Security+ 学习笔记27 灾后恢复
  13. 阿里云服务器价格表,阿里云服务器最新收费标准大全
  14. microchip-01 MPLAB IDE安装
  15. 首发速看:智微JMS901双接口U盘成功量产,附量产工具软件+固件+教程分享
  16. 【vbers】ibv_reg_mr|RDMA
  17. 小程序向webview传参_h5与小程序互相跳转,传参和获取参数
  18. 墨画子卿第三章第9节:是一个人
  19. 中国计算机学会CCF推荐国际学术会议和期刊目录-网络与信息安全
  20. 解决Linux Telnet乱码问题

热门文章

  1. 【SWAT水文模型】SWAT水文模型建立及应用第四期: 气象数据的准备(传统气象站)(待更新)
  2. Android-WIFI笔记整理(一)
  3. 超声波振动筛外置换能器振子设计
  4. 手机可以找出 暗藏的摄像头
  5. hash计算在txt,doc中的细节(电子物证检验)
  6. 为什么无名管道只能用于具有亲缘关系的进程之间通信
  7. 一个基于 Docker 的私有云方案
  8. 小米电视安装电视家方法
  9. oracle 颜色中英文转换工具,Colors MiniLab(颜色识别转换工具)
  10. 网工自动化运维,转身多么重要