当前位置: 首页 > news >正文

POI in Action

POI 组件依赖

按需引入对应依赖 (给出官方的指引)

组件作用Maven依赖
POIFSOLE2 Filesystempoi
HPSFOLE2 Property Setspoi
HSSFExcel XLSpoi
HSLFPowerPoint PPTpoi-scratchpad
HWPFWord DOCpoi-scratchpad
HDGFVisio VSDpoi-scratchpad
HPBFPublisher PUBpoi-scratchpad
HSMFOutlook MSGpoi-scratchpad
DDFEscher common drawingspoi
HWMFWMF drawingspoi-scratchpad
OpenXML4JOOXMLpoi-ooxml plus either poi-ooxml-schemas or ooxml-schemas and ooxml-security
XSSFExcel XLSXpoi-ooxml
XSLFPowerPoint PPTXpoi-ooxml
XWPFWord DOCXpoi-ooxml
XDGFVisio VSDXpoi-ooxml
Common SLPowerPoint PPT 和 PPTX 共用组件poi-scratchpad and poi-ooxml
Common SSExcel XLS 和 XLSX 共用组件poi-ooxml
XSSFExcel XLSXpoi-ooxml
XSLFPowerPoint PPTXpoi-ooxml
XWPFWord DOCXpoi-ooxml
XDGFVisio VSDXpoi-ooxml
Common SLPowerPoint PPT 和 PPTX 共用组件poi-scratchpad and poi-ooxml
Common SSExcel XLS 和 XLSX 共用组件poi-ooxml

什么是 OLE2 和 OOXML

OLE2 和 OOXML 本质上都是一种文件格式规范或标准,平时看到的 excel 中,有字体、公式、颜色、图片等等,看起来非常复杂,但是在文件结构上都遵循着固定的格式。

OLE2 文件一般包括 xls、doc、ppt 等,是二进制格式的文件。 相关内容可以参考: 复合文档Ole对象二进制储存格式 。

OOXML文件一般包括 xlsx、docx、pptx 等。该类文件以指定格式的 xml 为基础并以 zip 格式压缩,这里我利用解压工具解压本地的一个 xlsx 文件,可以看到以下文件结构,在本文例子中,我们会重点关注 sharedStrings.xml 和 sheet1.xml 的内容,因为使用 SAX API 时必须用到:

在这里插入图片描述

包名描述
org.apache.poi.ssExcel API,底层解析方式类似 DOM,效率较低,内存占用较大
org.apache.poi.hssfExcel XLS API,采用 SAX API 方式读写
org.apache.poi.xssfExcel XLSX API,采用 SAX API 方式读写

POI SAX 方式的 API 非常繁琐,使用时须熟练掌握 OLE2 或 OOXML 的规范

http://www.lryc.cn/news/92367.html

相关文章:

  • 苹果Vision Pro将引爆人机交互的重大变革
  • MMDetection学习记录(二)之配置文件
  • Python数据分析:NumPy、Pandas和Matplotlib的使用和实践
  • 实习生面试问题及回答记录
  • 设计模式(十):结构型之外观模式
  • 买法拍房需要注意什么
  • linux命令输出结果但不显示在屏幕上的通用办法
  • 【Linux系统进阶详解】Linux字符权限rwx-权限组合原理,对应类型ugo,user,group,other,+-=详解及权限管理实战
  • 凡人修C传——专栏从凡人到成仙系列目录
  • 隐藏python代码,售卖并保护源代码
  • Material—— VAT(Houdini To UE)
  • 视频后期剪辑
  • Python3+Selenium2完整的自动化测试实现之旅(七):完整的轻量级自动化框架实现
  • 泰山信息科技5周年:无尽的感恩,非常非常的惋惜
  • LabVIEW编程开发PCB测试仪
  • React使用Electron开发桌面端
  • springboot+vue餐厅点餐系统在线点餐系统(含源码+数据库)
  • Vue.js 中的 TypeScript 支持是什么?如何使用 TypeScript?
  • 测试者必知—如何做Web测试?常见测试点总结
  • 怎么转换英文音频成文字?英文音频转文字app分享
  • esp32-cam拍照上传,app inventor 制作安卓app实时显示
  • 基于jsp+mysql+Spring+mybatis+Springboot的Springboot实现的就业信息管理平台
  • 阿里巴巴内部10w字Java面试小抄火了,完整版开放下载
  • Logback自定义DBAppender保存系统日志到数据库
  • 云原生之使用Docker部署LimeSurvey在线调查工具
  • sdbusplus:添加ObjectManager interface
  • “RAID0 vs RAID1 vs RAID5 vs RAID6 vs RAID10:哪种RAID级别最适合你的需求?“
  • 【MySQL】Mycat
  • Netty中ServerBootstrap类介绍
  • 数字图像处理实验报告