java poi复习

Poi是apache的开源组件,提供一套java的api对word、excel等文档进行操作。

学习HSSF、XSSF,对excel操作。

使用HSSF进行excel文件写操作:
HSSF只支持97-03版本excel,扩展名是.xls,每个sheet行数最大65536行。
缺点:如果写数据量大文件,可能会导致内存溢出,原因,将所有数据对象放在内存中,最后执行文件内容写。
优点:对于小数据量文件写操作,速度很快的。

使用XSSF对excel写操作:
XSSF只支持07以上版本excel,扩展名是.xlsx(不向下兼容), 每个sheet对行数据没 限制。
优点:对大数据量文件执行写操作,不会导致内存溢出,原因,在写的过程中生成很多临时文件,一边写一边生成文件(内存中不会保留很多数据),最后将临时文件合并输出。
缺点:对大数据量写操作,速度不快。

如果需要导出1000条数据,使用HSSF导出。

工具类掌握 ExcelExportSXXSSF。

使用HSSF和XSSF对excel进行读操作:
HSSF只支持97-03版本excel,扩展名是.xls,每个sheet行数最大65536行。

使用HSSF用户驱动模式:
优点:方便编程,对于小数据量文件写操作,速度很快的。
缺点:如果写大数据量文件,可能导致内存溢出,原因,将文件内容全部加载到内存,进行读操作。

使用HSSF事件驱动模式:
  大概原理:通过事件驱动模式,需要实现一个接口HSSFListener,接口方法中定义事件驱动执行内容,在解析Excel文件每一行、每一个单元格直到解析出数据,这个过程进行不同的事件驱动。
  目标:在解析完每一行数据后事件驱动,将每一行数据获取到。

  优点:对读取大数据量的文件,不会导致内存溢出。
  缺点:编程实现复杂,读取文件速度不快,原因是在读取时进行事件 驱动,一边读一边进行事件驱动。

使用XSSF事件驱动模式。
XSSF只支持07以上版本excel,扩展名是.xlsx(不向下兼容), 每个sheet对行数据没 限制。
事件驱动的方法同HSSF事件驱动。

使用HSSF或XSSF读取文件,实现数据导入,一般情况下03版本的65536行数据量够用。
如果本机安装07版本的excel软件,使用HSSF导入,可以将.xlsx另存为03版本的文件。

HSSF事件驱动读文件封装类:
java poi复习_第1张图片

你可能感兴趣的:(java,poi)