POI常见包名称含义,常见HSSF,SXXF,SXSSF区别

简介: POI常见包名称含义,常见HSSF,SXXF,SXSSF区别

详细用法会在POI,EasyExcel统一讲解。


   

HSSF 是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”。 通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。

     

HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即“用户模型”和“事件-用户模型”。前者很好理解,后者比较抽象,但操作效率要高得多。


Java中最常见就是HSSF,SXXF,SXSSF,三者区别在于:


HSSF:Excel97-2003版本,扩展名为.xls。一个sheet最大行数65536,最大列数256。


XSSF:Excel2007版本开始,扩展名为.xlsx。一个sheet最大行数1048576,最大列数16384。


SXSSF:是在XSSF基础上,POI3.8版本开始提供的支持低内存占用的操作方式,扩展名为.xlsx。


HSSF用于Excel03版本:


     

缺点:最多只能处理65536行,否则会报异常,


     

优点:过程中写入缓存,不操作磁盘,最后一次性写入磁盘,速度快


SXXF用于Excel07版本:


     

缺点:写数据时速度非常慢,非常耗内存,也会发生内存溢出,如100万条数据

     

优点:可以写较大的数据量,如20万条数据


SXSSF可以理解为SXXF超大量数据升级版:


优点:可以写非常大量的数据库,如100万条甚至更多条,写数据速度快,占用更少的内存

注意:


过程中会产生临时文件,需要清理临时文件

默认由100条记录被保存在内存中,如果超出这数量,则最前面的数据被写入临时文件

如果想自定义内存中数据的数量,可以使用new SXSSFWorkbook(数量)

其他常见名称含义:


XSSF (XML SpreadSheet Format) – Used to reading and writting Open Office XML (XLSX) format files.    

HSSF (Horrible SpreadSheet Format) – Use to read and write Microsoft Excel (XLS) format files.

HWPF (Horrible Word Processor Format) – to read and write Microsoft Word 97 (DOC) format files.

HSMF (Horrible Stupid Mail Format) – pure Java implementation for Microsoft Outlook MSG files

HDGF (Horrible DiaGram Format) – One of the first pure Java implementation for Microsoft Visio binary files.    

HPSF (Horrible Property Set Format) – For reading “Document Summary” information from Microsoft Office files.

HSLF (Horrible Slide Layout Format) – a pure Java implementation for Microsoft PowerPoint files.

HPBF (Horrible PuBlisher Format) – Apache's pure Java implementation for Microsoft Publisher files.

DDF (Dreadful Drawing Format) – Apache POI package for decoding the Microsoft Office Drawing format.


相关文章
|
6月前
|
easyexcel
easyExcel自定定义类型转换
easyExcel自定定义类型转换
297 0
|
2月前
|
Java
java包装器类型
java包装器类型
18 0
|
3月前
|
Java Apache Maven
Java中使用poi+poi-tl实现根据模板导出word文档
这个过程不仅简化了文档生成的工作,而且保证了生成文档的一致性与准确性,特别适合于那些需要生成大量文档的自动化场景。通过以上步骤,Java开发人员可以实现高效、可靠的Word文档导出功能。
1527 0
|
存储 安全 Android开发
【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )
【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )
431 0
【Android 安装包优化】资源混淆 ( resources.arsc 资源映射表混淆 | resources.arsc 资源映射表二进制格式分析 | 混淆全局字符串池和资源名称字符串池 )
|
7月前
|
Java
Java包及访问限定
Java包及访问限定
40 0
|
7月前
|
Java 索引
正则表达式源码分析--三个常用类--分组、捕获、反向引用--String 类中使用正则表达式的代码示例和图
正则表达式源码分析--三个常用类--分组、捕获、反向引用--String 类中使用正则表达式的代码示例和图
84 0
|
easyexcel
EasyExcel低版本中数据行中包含空数据会跳过导致数据对应不上的问题解析
EasyExcel低版本中数据行中包含空数据会跳过导致数据对应不上的问题解析
502 0
|
缓存 JavaScript 前端开发
用 @types 前缀的包是什么?有什么用?
解决过 TypeScript 的项目大概都是从两个方向,Vue3 方向和 React Native 方向,而在 React Native 方向上我经常会遇到一个烦人的错误,这个问题的场景通常出现于 t
|
Java
简而不漏,300字Java标识符命名规则规范,看一遍就可以记住,包名类名变量名常量名,让命名有迹可循
简而不漏,300字Java标识符命名规则规范,看一遍就可以记住,包名类名变量名常量名,让命名有迹可循
197 0
|
Java
java中正规的项目包结构:域名倒序.项目名称.模块名称.类名
java中正规的项目包结构:域名倒序.项目名称.模块名称.类名
161 0
java中正规的项目包结构:域名倒序.项目名称.模块名称.类名