概述
数据部分字段为null或者全部为null:
可以看到很多字段出现null,解决办法很简单如下:
一、实体类中需要添加toString方法(快捷生成toString键:Ctrl+Ins)
@Override
public String toString() {
return "DemoDate{" +
"id=" + id +
", name='" + name + ''' +
", Day='" + Day + ''' +
", Time='" + Time + ''' +
'}';
二、实体类中的字段名开头不能为大写字母
完整代码如下:
项目结构
这是我需要读取的Excel 表格文件
这是我的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Demo2</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Demo2</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!--java操作数据库的jar包-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.2.3</version>
</dependency>
</dependencies>
</project>
这是实体类DemmoDate
package com.tom.domain;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.metadata.BaseRowModel;
/*
实体类
用来盛装Excel中读取的数据,数据模板类
*/
public class DemoDate {
//绑定excel表格头,value是字段名,index是字段个数从零开始
@ExcelProperty(value = "编号",index = 0)
private int id;
@ExcelProperty(value = "姓名",index = 1)
private String name;
@ExcelProperty(value = "周数",index = 2)
private String day;
@ExcelProperty(value = "节数",index = 3)
private String time;
public DemoDate() {
}
public DemoDate(int id, String name, String day, String time) {
this.id = id;
this.name = name;
this.day = day;
this.time = time;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDay() {
return day;
}
public void setDay(String day) {
this.day = day;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
@Override
public String toString() {
return "DemoDate{" +
"id=" + id +
", name='" + name + ''' +
", Day='" + day + ''' +
", Time='" + time + ''' +
'}';
}
}
这是测试类
package com.tom.test;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.tom.domain.DemoDate;
import org.junit.Test;
/*
读取操作单元测试
*/
public class ReadTest {
@Test
public void test01() {
//读取Excel文件位置
EasyExcel.read("D:\测试表格.xlsx", DemoDate.class, new AnalysisEventListener<DemoDate>() {
// 每解析一行数据调用一次此处方法
@Override
public void invoke(DemoDate Date, AnalysisContext analysisContext) {
System.out.println("解析的数据为:"+Date.toString());
//调用数据库将解析完成的数据保存到数据库
}
//当全部解析完被调用,这里还可以书写导入数据库的sql语句
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("-----解析完成-----");
}
}).sheet().doRead();
}
}
运行结果:
最后
以上就是娇气学姐为你收集整理的java操控easyexcel读取excel表格数据为null或部分字段为null的全部内容,希望文章能够帮你解决java操控easyexcel读取excel表格数据为null或部分字段为null所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复