jexcel
基于java的依赖于poi的excel读写包装
项目地址:
示例工程结构
pom.xml
<repositories>
<repository>
<id>lychie-maven-repoid>
<url>https://raw.github.com/lychie/maven-repo/master/releasesurl>
repository>
repositories>
<dependencies>
<dependency>
<groupid>org.lychiegroupid>
<artifactid>jexcelartifactid>
<version>1.0.1version>
dependency>
dependencies>
写出excel
package org.lychie.jexcel.demo;
import java.io.file;
import java.util.list;
import java.util.arraylist;
import org.lychie.jexcel.writableexcel;
import org.lychie.jexcel.demo.model.employee;
/**
* 写出对象到excel文档
*
* @date 2015-01-21
* @author lychie fan
*/
public class writeexcel {
public static void main(string[] args) {
// 创建一个可写的excel对象
writableexcel excel = new writableexcel(getdata());
// 设置pojo属性与excel单元格的映射关系
excel.setmapper("id", "编号");
excel.setmapper("name", "姓名");
excel.setmapper("hiredate", "入职日期");
excel.setmapper("salary", "薪资");
// 将对象内容写出到excel文档
excel.write(new file("src/main/resources/employee.xlsx"));
}
private static list getdata() {
list list = new arraylist();
list.add(new employee("杨忠杰"));
list.add(new employee("叶水燕"));
list.add(new employee("杨晓婷"));
list.add(new employee("叶国珠"));
list.add(new employee("何国群"));
return list;
}
}
结果图
设置写出的excel样式
public class writeexcel {
public static void main(string[] args) {
// 创建一个可写的excel对象
writableexcel excel = new writableexcel(getdata());
// 设置pojo属性与excel单元格的映射关系
excel.setmapper("id", "编号");
excel.setmapper("name", "姓名");
excel.setmapper("hiredate", "入职日期");
excel.setmapper("salary", "薪资");
// 单元格值格式对象
valueformat format = excel.getvalueformat();
// 设置薪资显示格式为货币格式
format.set("salary", valueformat.currency_format);
// 主体对象
body body = excel.getbody();
// 设置单元格内容水平方向居中
body.sethorizontalalignment(body.horizontal_center);
// 将对象内容写出到excel文档
excel.write(new file("src/main/resources/employee.xlsx"));
}
}
结果图
读取excel文档
package org.lychie.jexcel.demo;
import java.util.list;
import org.lychie.jutil.ioutil;
import org.lychie.jutil.printer;
import org.lychie.jexcel.readableexcel;
import org.lychie.jexcel.demo.model.person;
/**
* 读取excel文档
*
* @date 2015-01-21
* @author lychie fan
*/
public class readexcel {
public static void main(string[] args) {
// 创建一个可读的excel对象
readableexcel excel =
new readableexcel(person.
class);
// 设置pojo属性与excel单元格的映射关系
excel.setmapper("id", "编号");
excel.setmapper("age", "年龄");
excel.setmapper("sex", "性别");
excel.setmapper("name", "姓名");
excel.setmapper("date", "生日");
// 载入excel文档
excel.load(ioutil.getresourceasstream("persons.xlsx"));
// 解析excel文档成集合
list
list = excel.tolist();
// 打印输出集合的内容
printer.print(list);
}
}
persons.xlsx
输出结果
读取excel文档,校验文档内容合法性
public class readexcel {
public static void main(string[] args) {
// 创建一个可读的excel对象
readableexcel excel =
new readableexcel(person.
class);
// 设置pojo属性与excel单元格的映射关系
excel.setmapper("id", "编号");
excel.setmapper("age", "年龄");
excel.setmapper("sex", "性别");
excel.setmapper("name", "姓名");
excel.setmapper("date", "生日");
// 载入excel文档
excel.load(ioutil.getresourceasstream("persons.xlsx"));
try {
// 校验excel文档内容的合法性
excel.validate(
new basicvalidation());
}
catch (validationcastexception e) {
e.printstacktrace();
return ;
}
// 解析excel文档成集合
list
list = excel.tolist();
// 打印输出集合的内容
printer.print(list);
}
}
persons.xlsx
输出结果
读取excel文档,自定义校验规则
public class readexcel {
public static void main(string[] args) {
// 创建一个可读的excel对象
readableexcel excel =
new readableexcel(person.
class);
// 设置pojo属性与excel单元格的映射关系
excel.setmapper("id", "编号");
excel.setmapper("age", "年龄");
excel.setmapper("sex", "性别");
excel.setmapper("name", "姓名");
excel.setmapper("date", "生日");
// 载入excel文档
excel.load(ioutil.getresourceasstream("persons.xlsx"));
try {
// 校验excel文档内容的合法性
excel.validate(
new myvalidation());
}
catch (validationcastexception e) {
e.printstacktrace();
return ;
}
// 解析excel文档成集合
list
list = excel.tolist();
// 打印输出集合的内容
printer.print(list);
}
private static class myvalidation extends basicvalidation {
@override
public boolean validate(class type, string name, string value) {
// 自定义校验规则, 在 super.validate 之前校验, 以达到短路父校验规则的目的
if (name.equals("age")) {
integer age = integer.valueof(value);
if (age >= 18 && age < 55) {
return true;
} else {
setcause("年龄不在 [18, 55) 区间");
return false;
}
}
// 最后调父类校验方法
return super.validate(type, name, value);
}
}
}
persons.xlsx
输出结果
资源
示例工程源码下载:(提取码:6398)
posted on 2015-01-22 09:38
fancydeepin 阅读(4888)
评论(2) 编辑 收藏