java txt数据导入excel,java easyreport 导入excel、 txt 数据txt按字节导入(七)
有时候导入txt文件不一定是采用分隔符方式导入,而是采用按字节、字符长度导入,比如银联对账文件。
导入txt数据
姓名 年龄科目分数
陈寻 12语文67
王老五12语文80
柯景腾13语文78
沈佳宜14语文88
王小贱15语文60
黄小仙12语文54
李大仁14语文76
程又青13语文58
方茴 12语文87
沈晓棠13语文89
林嘉茉14语文68
赵烨 14语文50
苏凯 12语文78
乔燃 13语文90
我们采用iso8859-1单字节编码读取文件数据,一个汉字占2字节。
导入demo
package example;
import java.io.File;
import java.io.FileInputStream;
import java.util.List;
import java.util.Map;
import model.Student;
import test.AbstractTxtTest;
import com.easyReport.read.checker.GEValuePropertyChecker;
import com.easyReport.read.checker.LEValuePropertyChecker;
import com.easyReport.read.checker.PropertyChecker;
import com.easyReport.read.temp.ReadTemp;
import com.easyReport.read.temp.TxtBytePropertyTemp;
import com.easyReport.read.temp.TxtReadTemp;
public class TestTxtByte extends AbstractTxtTest {
@Override
public void test() {
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream(new File("testFile/test7.txt"));
testReadBean(fileInputStream);
//testReadMap(fileInputStream);
fileInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected ReadTemp bulidReadTemp() {
//模板批次设置构造方法,一次读取10行
TxtReadTemp readTemp = new TxtReadTemp(1,10);
readTemp.setEncode("iso8859-1");
readTemp.addPropertyTemp(new TxtBytePropertyTemp("姓名", "name",0,6));
readTemp.addPropertyTemp(new TxtBytePropertyTemp("年龄", "age",6,8));
readTemp.addPropertyTemp(new TxtBytePropertyTemp("科目", "course.name",8,12));
//大于等于60小于等于80
readTemp.addPropertyTemp(new TxtBytePropertyTemp("分数", "course.score",new PropertyChecker[]{
new GEValuePropertyChecker(60),new LEValuePropertyChecker(80)
},12,14));
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"));
}
}
}
导入模板见红色字体部分,我们设置编码为iso8859-1,读取文件将按照设置编码输入流读取,同事使用TxtBytePropertyTemp属性模板设置读起始位置等。
运行结果:
--------------bean---------------
陈寻|12语文|67.0
王老五|12语文|80.0
柯景腾|13语文|78.0
王小贱|15语文|60.0
李大仁|14语文|76.0
--------------bean---------------
林嘉茉|14语文|68.0
苏凯|12语文|78.0
第5行,分数值必须小于等于80.0;
第7行,分数值必须大于等于60.0;
第9行,分数值必须大于等于60.0;
第10行,分数值必须小于等于80.0;
第11行,分数值必须小于等于80.0;
第13行,分数值必须大于等于60.0;
第15行,分数值必须小于等于80.0;
我们也可以采用按字符长度读取文件。
导入数据我们做修改,姓名使用3字符长度。
姓名 年龄科目分数
陈寻 12语文67
王老五12语文80
柯景腾13语文78
沈佳宜14语文88
王小贱15语文60
黄小仙12语文54
李大仁14语文76
程又青13语文58
方茴 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.AbstractTxtTest;
import com.easyReport.read.checker.GEValuePropertyChecker;
import com.easyReport.read.checker.LEValuePropertyChecker;
import com.easyReport.read.checker.PropertyChecker;
import com.easyReport.read.temp.ReadTemp;
import com.easyReport.read.temp.TxtBytePropertyTemp;
import com.easyReport.read.temp.TxtReadTemp;
public class TestTxtByte extends AbstractTxtTest {
@Override
public void test() {
FileInputStream fileInputStream;
try {
fileInputStream = new FileInputStream(new File("testFile/test7.txt"));
testReadBean(fileInputStream);
//testReadMap(fileInputStream);
fileInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
protected ReadTemp bulidReadTemp() {
//模板批次设置构造方法,一次读取10行
TxtReadTemp readTemp = new TxtReadTemp(1,10);
/*readTemp.setEncode("iso8859-1");
readTemp.addPropertyTemp(new TxtBytePropertyTemp("姓名", "name",0,6));
readTemp.addPropertyTemp(new TxtBytePropertyTemp("年龄", "age",6,8));
readTemp.addPropertyTemp(new TxtBytePropertyTemp("科目", "course.name",8,12));
//大于等于60小于等于80
readTemp.addPropertyTemp(new TxtBytePropertyTemp("分数", "course.score",new PropertyChecker[]{
new GEValuePropertyChecker(60),new LEValuePropertyChecker(80)
},12,14));*/
readTemp.addPropertyTemp(new TxtBytePropertyTemp("姓名", "name",0,3));
readTemp.addPropertyTemp(new TxtBytePropertyTemp("年龄", "age",3,5));
readTemp.addPropertyTemp(new TxtBytePropertyTemp("科目", "course.name",5,7));
//大于等于60小于等于80
readTemp.addPropertyTemp(new TxtBytePropertyTemp("分数", "course.score",new PropertyChecker[]{
new GEValuePropertyChecker(60),new LEValuePropertyChecker(80)
},7,9));
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"));
}
}
}
没有设置编码,默认采用GBK编码。
运行结果:
--------------bean---------------
陈寻|12语文|67.0
王老五|12语文|80.0
柯景腾|13语文|78.0
王小贱|15语文|60.0
李大仁|14语文|76.0
--------------bean---------------
林嘉茉|14语文|68.0
苏凯|12语文|78.0
第5行,分数值必须小于等于80.0;
第7行,分数值必须大于等于60.0;
第9行,分数值必须大于等于60.0;
第10行,分数值必须小于等于80.0;
第11行,分数值必须小于等于80.0;
第13行,分数值必须大于等于60.0;
第15行,分数值必须小于等于80.0;
java txt数据导入excel,java easyreport 导入excel、 txt 数据txt按字节导入(七)相关推荐
- Java 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包)
ava 使用poi导入excel,结合xml文件进行数据验证的例子(增加了jar包) 假设现在要做一个通用的导入方法: 要求: 1.xml的只定义数据库表中的column字段,字段类型,是否非空等条件 ...
- java横向导出excel_利用Java进行Excel的数据导入导出
1. 引言 MS 的电子表格(Excel)是Office 的重要成员,是保存统计数据的一种常用格式.在一 个Java 应用中,将一部分数据生成Excel 格式,是与其他系统无缝连接的重要手段.在远程 ...
- java 导入excel工具类_java Excel工具类,导入导出Excel数据
java Excel工具类,导入导出Excel数据,导入数据对合并表格有判断获取数据: 导出数据到Excel,Excel文件不存在会创建. 使用的是poi处理,兼容Excel. 对反射不够理解,目前先 ...
- 关于使用Java后台导入excel文件,读取数据后,更新数据库,并返回数据给到前端的相关问题总结
在之前的项目中,使用到了Java后台读取excel文件数据的功能点,本想着该功能点已经做过了,这一类的应该都大差不离,不过在刚结束的一个项目中,现实给我深深的上了一课,特此编写此片博客,以作记录,并给 ...
- java实现这个无表头空表格,《java程序导出excel表格是空白的没有数据?》 java怎么导入数据库...
java程序导出excel表格是空白的没有数据? 看一下是否可以链接上数据库,或者查看一下链接的数据库是否有数据 java从数据库中导出excel poi 建议你使用pageoffice. java ...
- java导出wps文件怎么打开,怎么把excel表格导入word-用java将数据导出到wps表格中,怎么实现...
如何把WPS表格转换成Excel 1.首先,用WPS 打开需要操作的Excel文件. 2.点下WPS 表格右下角的"分页预览",查看需要PDF文档的表格的页面情况二页, 3.(这一 ...
- Java poi导入合并单元格的excel数据【最完整】附pom文件和excel截图
代码如下: package com.haha.demo;import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermo ...
- java excel 导入 加校验_POI实现excel各种验证和导入的思路总结
制定标准 导入总是与导出相辅相成的,无规矩不成方圆.所谓的标准都是大家一同来维护和遵守的,那么首先就是制定一个模板. 这样可以减少验证的工作量. 例如时间的规范[yyyy-MM-dd],获取单元格的时 ...
- @excel注解_Excel导入导出Java解决方案推荐
今天锋哥介绍一款Excel导入导出Java解决方案Easy-POI,以前我们用POI,麻烦点,Easy-POI是封装好的,用起来Easy点,封装过,性能好,所以大伙有空可以研究下: Easy-POI ...
- java excel导出2007_java操作excel文件,实现批量导出,和导入
一.POI的定义 JAVA中操作Excel的有两种比较主流的工具包: JXL 和 POI .jxl 只能操作Excel 95, 97, 2000也即以.xls为后缀的excel.而poi可以操作Exc ...
最新文章
- ICCV 2019:谷歌获最佳论文!中国入选论文最多,中科院、清华领跑
- 基于postfix一步一步构建Mailserver,支持虚拟用户,支持WebMail
- 印度资深数字货币研究员::我为什么选择BCH?
- 【bzoj2751】[HAOI2012]容易题(easy) 数论,简单题
- QT的QScriptEngine类的使用
- 个性化 服务器运行失败,VirtualBox 运行失败
- Android Glide 加载圆形图片(绝对实用)
- 在上司面前硬不起来?教你如何快速将字符串转换为可执行代码
- linux里面vim自动显示行号,linux中vim永久显示行号、开启语法高亮
- 长肥管道(LFT)中TCP的艰难处境与打法
- 9.3. where 优化
- 【Foreign】字符串匹配 [KMP]
- matlab 画m,Matlab画直线(Bresenhamline.m)
- 台式计算机可以发射无线网络,台式电脑无线网卡怎么发射WIFI信号!
- java struts2教程_Struts2学习教程之入门小白的开始基础
- 威斯康星大学硕士计算机科学,2020年威斯康星大学麦迪逊分校排名TFE Times美国最佳计算机科学硕士专业排名第12...
- 如果你的电脑只能安装三个软件, 你会选择哪三个?
- 解决no-console异常
- Peekaboo——项目系统设计与数据库设计
- 贝叶斯分析-学习笔记(超干的干货)