有时候我们需要读的报表数据很大,这时候一次加载所有数据有可能会出现内存溢出,所以我们需要采用批量读取来实现。

导入数据test5.xls姓名年龄科目分数

王老五12语文80

柯景腾13语文78

沈佳宜14语文88

王小贱15语文60

黄小仙12语文54

李大仁14语文76

程又青13语文58

陈寻12语文67

方茴12语文87

沈晓棠13语文89

林嘉茉14语文68

赵烨14语文50

苏凯12语文78

乔燃13语文90

导入测试demo

package example;

import java.io.File;

import java.io.FileInputStream;

import java.util.List;

import java.util.Map;

import model.Student;

import test.AbstractExcelTest;

import com.easyReport.read.temp.PropertyTemp;

import com.easyReport.read.temp.ReadTemp;

public class TestExcelBatch extends AbstractExcelTest {

@Override

public void test() {

FileInputStream fileInputStream;

try {

fileInputStream = new FileInputStream(new File("testFile/test5.xls"));

testReadBean(fileInputStream);

//testReadMap(fileInputStream);

fileInputStream.close();

} catch (Exception e) {

e.printStackTrace();

}

}

@Override

protected ReadTemp bulidReadTemp() {

//模板设置批次构造方法,一次读取10行

ReadTemp readTemp = new ReadTemp(1,10);

readTemp.addPropertyTemp(new PropertyTemp("姓名", "name"));

readTemp.addPropertyTemp(new PropertyTemp("年龄", "age"));

readTemp.addPropertyTemp(new PropertyTemp("科目", "course.name"));

readTemp.addPropertyTemp(new PropertyTemp("分数", "course.score"));

return readTemp;

}

@Override

protected void writeBeanList(List modelLists) {

System.out.println("--------------bean---------------");

for (Student s : modelLists) {

System.out.println(s.getName() + "|"

+ s.getAge()+s.getCourse().getName()+"|"+s.getCourse().getScore());

}

}

@Override

protected void writeMapList(List> mapLists) {

System.out.println("--------------map---------------");

for (Map m : mapLists) {

System.out.println(m.get("name") + "|" + m.get("age")+"|" + m.get("course.name")+"|" + m.get("course.score"));

}

}

}

基类basicTest

public void testReadBean(FileInputStream fis) throws Exception {

ConvertReader reader = buildReader();

//判断是否批次读取,若批次读取,写每批次数据

if(reader.getContext().getTemp().getBatch() == 0){

writeBeanList((List) reader.readToBeanList(fis, getModelClass()));

}else{

//判断是否批次读取完成

while(!reader.isEnd()){

writeBeanList((List) reader.readToBeanList(fis, getModelClass()));

}

}

}

public void testReadMap(FileInputStream fis) throws Exception {

ConvertReader reader = buildReader();

writeMapList(reader.readToMapList(fis));

if(reader.getContext().getTemp().getBatch() == 0){

writeMapList(reader.readToMapList(fis));

}else{

while(!reader.isEnd()){

writeMapList(reader.readToMapList(fis));

}

}

}

执行demo测试类,运行结果:

--------------bean---------------

王老五|12语文|80.0

柯景腾|13语文|78.0

沈佳宜|14语文|88.0

王小贱|15语文|60.0

黄小仙|12语文|54.0

李大仁|14语文|76.0

程又青|13语文|58.0

陈寻|12语文|67.0

方茴|12语文|87.0

沈晓棠|13语文|89.0

--------------bean---------------

林嘉茉|14语文|68.0

赵烨|14语文|50.0

苏凯|12语文|78.0

乔燃|13语文|90.0

注:很不好意思上传附件的时候把字节码打包上传了,请到第六章节下载!

java批量导出txt,java easyreport 导入excel、 txt 数据批量读取(五)相关推荐

  1. springboot 导入excel(数据批量导入)

    springboot excel数据批量导入 1.pom.xml 引入poi依赖 <!--poi--><dependency><groupId>org.apache ...

  2. java 导入excel表格(批量导入),下载excel模板,导出表格

    1.导入excel表格(批量导入) 如图,给id=83和id=84的老师导入工作时间. 导入的excel模板如下 注意导入excel表格时关于日期时间类的的数据要设置对应的格式. 后台接口 /*** ...

  3. java操作mysql导表_Java实现批量导入excel表格数据到数据库中的方法

    本文实例讲述了Java实现批量导入excel表格数据到数据库中的方法.分享给大家供大家参考,具体如下: 1.创建导入抽象类 package com.gcloud.common.excel; impor ...

  4. 解决如何使用layui导入Excel表数据

    解决如何使用layui导入Excel表数据 1.前端页面html代码展示 <button type="button" lay-submit="" clas ...

  5. php页面导入excel表格,php页面导入excel表格数据:php导入excel 怎么获取excel表格数据...

    导入excel文件,后端php处理导入的数据并存入数据库,需要前后端结合的demo! thinkphp3.2phpexcel导入最基本用法 先整个最基础的代码,理解了这个,后面非常简单了 $file_ ...

  6. php导入excel表格数据,php页面导入excel表格数据-php导入excel 怎么获取excel表格数据...

    PHP如何导出当前页面中的表格至Excel 常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点.个人推荐用第三种方法,因为它可以跨平台使用. 1. 以.csv格式读取 将.xls转换成. ...

  7. datatable如何生成级联数据_如何把Excel表数据批量生成条形码

    条形码属于一维条码,是将宽度不等的多个黑条和空白,按照一定的编码规则排列,用以表达一组信息的图形标识符,条形码的种类比较多,比如常用的Code128码,Code39码,Code93码,EAN-13码, ...

  8. php excel导入数据库显示乱码,php修改excel表格数据库数据格式-使用phpexcel导入excel表格数据到MYSQL,乱码怎么解决...

    PHP 用PHPExcel往数据库导入大量数据 估计0是null,所以不显示了,可以换个思路,让他显示为字符串 $number = 0; echo ''.$number 原生PHP代码实现excel导 ...

  9. vue下载excel表格模板和导入excel表格数据

    vue下载excel表格模板和导入excel表格数据 vue制作excel表格模板给前端下载 vue制作excel表格模板给前端下载 最近有个需求,需要导入excel表格,并且还需要制作模板给用户下载 ...

  10. 导入Excel表格数据(一)

    开发工具与关键技术:VS+导入Excel表格 作者: 李伙 撰写时间: 2019年6月3日 在学习MVC过程中,如果我们需要录入某条数据时可以利用新增的方法把我们的数据录入进去,而录入的数据比较多的时 ...

最新文章

  1. Git/Ctags/Vim/GDB基础笔记
  2. Vue引入百度地图,如何去掉左下角的版权logo百度等信息?
  3. R语言ggpubr包ggsummarystats函数可视化分组条形图(自定义分组颜色、添加抖动数据点jitter、误差条)并在X轴标签下方添加分组对应的统计值(样本数N、中位数、四分位数的间距iqr)
  4. 李德毅院士:基于驾驶脑的智能驾驶车辆硬件平台架构
  5. 紫书 习题 10-44 UVa 11246 ( 容斥原理)
  6. 混合编码种群来进化的最大化目标的单目标优化问题
  7. 网络安全-Internet安全体系结构
  8. [蓝桥杯][算法提高VIP]打水问题(贪心)
  9. android ssl http,Android SSL HTTP请求使用自签名证书和CA
  10. Python模拟汉诺塔问题移动盘子的过程
  11. 操蛋!新来的同事竟然不会在javaee项目中使用WebSocket~
  12. 安装虚拟机vmware8.0.4版本
  13. 黄金价格查询易语言代码
  14. 聚合物电容作用原理与基础
  15. Vue3+elementplus搭建通用管理系统实例六:后台主页搭建下
  16. 宁波大学计算机非全,宁波大学考研:全日制和非全日制的6大区别,很多人不知道...
  17. 向量指令和标量指令有些大型机和巨型机 设置功能齐全的向量运算指令系统
  18. [转] TCP/IP原理、基础以及在Linux上的实现
  19. 12米数字高程DEM现已上线!附DEM专题图制作教程
  20. 菜鸡自学 Python 笔记(二)

热门文章

  1. 计算机一级网络知识,2014计算机一级MSOffice试题及答案 一(网络知识)
  2. Java链接生成二维码
  3. SWOT 分析法:(yeeyan读书)
  4. asp毕业设计——基于asp+access的家教信息管理系统设计与实现(毕业论文+程序源码)——家教信息管理系统
  5. 中富金石诊股 稀土开采配额下发 来看看都有谁
  6. IDEA模拟post发送请求
  7. 华为mate40首发鸿蒙操作系统,大招来了!鸿蒙2.0正式被确认,华为Mate40或将首发?...
  8. 精美的淘客项目完全开源啦,确定不来围观吗
  9. 【数据结构】-共享栈
  10. [MySQL]关系规范化中的操作异常理解