Skip to content

aimilin6688/excel-bean

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ci maven

简介

  • excel-bean 主要功能是javabean与Excel数据行之间的互相转换,普通项目中都会有Excel的导入导出功能,使用该工具可以大大提高工作效率,使开发者不必关系复杂的Excel解析。

Maven方式使用

<dependency>
	<groupId>com.aimilin</groupId>
	<artifactId>excel-bean</artifactId>
	<version>{最新版本}</version>
</dependency>

使用说明

  • 有如图Excel表格
姓名 年龄 生日 语文分数 数学分数 总分 性别
张三 18 2016-05-20 10:20:39 100 99 199
李四 17 2016-03-20 19:23:16 20.09 87.7 107.79
王五 20 2016-01-12 18:33:28 33.5 33.3 66.8
测试1 30 2016-01-12 18:33:28 60 95 155
测试2 31 2016-01-13 18:33:28 61.1 80 141.1
  • 定义JavaBean类型
public class Student1 {

	// 如果Excel标题和属性名称一样,则可以不使用注解
	private String 姓名;

	@ExlColumn("年龄")
	// 对应Excel标题中的年龄列,以下类似
	private Integer age;

	@ExlColumn("生日")
	// 日期类型,默认格式为 yyyy-MM-dd HH:mm:ss
	private Date birthday;
	@ExlColumn("语文分数")
	private Double chineseScore;
	@ExlColumn("数学分数")
	private Double mathsScore;
	@ExlColumn("总分") // 对应Excel中的公式,既 总分 = 语文分数 + 数学分数
	private Double sumScore;
	
	@ExlTransient //如果使用该注解,则该属性不写入到Excel中
	private String className;//班级名称

	//省略getter 和setter 方法

	@Override
	public String toString() {
		return "Student1 [姓名=" + 姓名 + ", age=" + age + ", birthday=" + birthday + ", chineseScore=" + chineseScore
				+ ", mathsScore=" + mathsScore + ", sumScore=" + sumScore + "]";
	}
}
  • 调用ExcelUtils 方法 将Excel转换成JavaBean对象列表
@Test
public void testRead() {
	List<Student1> stu1List = ExcelUtils.read(excel2003, Student1.class);
	log.debug("学生信息列表:" + stu1List);
}
  • 输出以下结果:
学生信息列表:[Student1 [姓名=张三, age=18, birthday=Fri May 20 10:20:39 CST 2016, chineseScore=100.0, mathsScore=99.0, sumScore=199.0],  Student1 [姓名=李四, age=17, birthday=Sun Mar 20 19:23:16 CST 2016, chineseScore=20.09, mathsScore=87.7, sumScore=107.79], 
Student1 [姓名=王五, age=20, birthday=Tue Jan 12 18:33:28 CST 2016, chineseScore=33.5, mathsScore=33.3, sumScore=66.8], 
Student1 [姓名=测试1, age=30, birthday=Tue Jan 12 18:33:28 CST 2016, chineseScore=60.0, mathsScore=95.0, sumScore=155.0], 
Student1 [姓名=测试2, age=31, birthday=Wed Jan 13 18:33:28 CST 2016, chineseScore=61.1, mathsScore=80.0, sumScore=141.1]]
  • 有时候导出Excel数据时会把相应的状态转换成可读的文字,例如数据库中性别存储的是1和2,导出Excel中需要时‘男’和‘女’,这时候可以使用@ExlColumn注解的dictionaries完成类型自动转换。在学生对象中添加如下代码:
// 性别使用字典数据方式,自动转换
@ExlColumn(value = "性别", 
	   dictionaries = {@Dictionary(name = "1", value = "男"), 
			   @Dictionary(name = "2", value = "女"),
			   @Dictionary(name = "0", value = "未知") })
private Integer gender;

使用方式说明,主要有以下几类方法

ExcelUtils.read
ExcelUtils.read2List
ExcelUtils.read2Map
ExcelUtils.write
ExcelUtils.write4List
ExcelUtils.write4Map

  • 主要的数据类型byte[],InputStream,String filePath等,可以很方便的再List,Map,Bean与Excel文件之间互转

Contact and communication

License

Please follow the open source protocol [MIT]