Microsoft 文档操作工具类...
本工具类基于Apache POI 4.0 SAX 用户模式实现。
操作简单但是不失灵活性。基于Sax模式实现,消耗内存相对较少,有效避免OOM(OutOfMemoryError)内存溢错误。
读取原理:读数据是基于事件模式,读一条数据,释放一条数据,整个解析过程只占用一条数据解析的内存。
写入原理:写数据则是将部分数据放入内存中,msdom-excel称这样的操作叫做缓存,超过缓存的写入数据部分则根据时间先后存于硬盘上。
Excel部分:
愿景:简单、高效、自由、轻松是我们要达成的项目目标。
简单:使用简单,无需深度学习,开箱即用。
高效:无需担心性能、担心数据量过大等技术问题,而专心于业务需求开发。
自由:灵活的配置,你可以修改每一处你能想象到的地方。我们不会限制死,但是我们会提供一套默认的方案给你。当方案不满足你的需求。你完
全可以自己重新定义一套方案。
轻松:我们希望你在使用mofum-msdom时是感到快乐和轻松的。
<dependency>
<groupId>com.mofum.msdom</groupId>
<artifactId>mofum-msdom</artifactId>
<version>1.0.2.3</version>
</dependency>
目前仅支持XLSX(Excel 2007)版本的Excel导入导出。暂不支持CVS,XLS相关的格式。
支持必要参数非空校验 required
支持过滤器读取(DataFilter)
支持自定义验证器(Validator)
支持文件(File)读取模式。
支持分页写入模式 (PageAnnotationExcelWriterImpl)
支持注解写入模式(AnnotationExcelWriterImpl)
支持多类型混合追加写入模式(MultiAnnotationExcelWriterImpl)
支持自定义Excel类型转换(ExcelConvert)
支持追加写入,多Sheet 混合写入模式。
支持合并单元格。
支持较多的样式
支持导出的数据的格式化
支持流读取模式(√)
支持模板导出并且同时支持模板的反序列化成对象(-)
支持模板注解相关配置(-)
支持初始化默认的Excel配置DataFilter,Validator,ExcelConvert,TypeConvert(√)【默认配置为全局配置,仅提供初始化功能】(该功能,你将可以根据你的业务需求来统一配置JAVA类型转换器,Excel类型转换器,验证器,过滤器。当然你仍然可以使用默认的相关配置和字段上配置的转换器,它们并不相互冲突。)
(注:“√” 表示已完成,“-”表示正在开发中。)
测试示例 见com.mofum.msdom.excel.demo 目录
JDK 版本: 1.8
系统版本: Windows 7
测试JVM : -Xms1m -Xmx5m
测试数据 :100万条数据(20列)见附件(sxxf1.xlsx)
最低JVM内存需求:5M
JDK 版本: 1.8
系统版本: Windows 7
测试JVM : -Xms1m -Xmx5m
最低JVM内存需求:5M
基于POI 4.0 开发的 excel 导入导出工具类
/**
* 读取测试模型
*/
public class ReadDemo {
public static void main(String[] args) throws IOException {
//创建Reader ,对Test模型进行解析
IExcelReader<TestModel, TestModelCallback> reader = new AnnotationExcelReaderImpl<TestModel, TestModelCallback>();
//POI 读取Excel 文件
reader.read(new File("001.xlsx"), TestModel.class, new TestModelCallback());
}
}
public class WriteDemo {
public static void main(String[] args) throws IOException {
//数据写入器
IExcelWriter writer = new AnnotationExcelWriterImpl<TestModel>();
//写入数据
writer.dataType(TestModel.class).start(out).write(datas).end();
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.