Excel4J基于 poi 的 Excel 操作組件
Excel4J 是基于 poi 的 excel 操作組件,大大減少代碼量,提高開發(fā)效率。
基于注解
@ExcelField(title = "學(xué)號", order = 1) private Long id; @ExcelField(title = "姓名", order = 2) private String name; @ExcelField(title = "入學(xué)日期", order = 3) private Date date; @ExcelField(title = "班級", order = 4) private Integer classes; @ExcelField(title = "是否開除", order = 5) private String expel;
讀取Excel快速實現(xiàn)
待讀取Excel(截圖)
轉(zhuǎn)換函數(shù)(/src/test/java/base/Excel2Module.java#excel2Object2)
@Test
public void excel2Object2() throws Exception {
String path = "D:\\IdeaSpace\\Excel4J\\src\\test\\resource\\students_02.xlsx";
// 不基于注解,將Excel內(nèi)容讀至List
>對象內(nèi)
List
> lists = ExcelUtils.getInstance().readExcel2List(path, 1, 3, 0);
System.out.println("讀取Excel至String數(shù)組:");
for (List
list : lists) {
System.out.println(list);
}
// 基于注解,將Excel內(nèi)容讀至List
對象內(nèi)
List
students = ExcelUtils.getInstance().readExcel2Objects(path, Student2.class, 0);
System.out.println("讀取Excel至對象數(shù)組(支持類型轉(zhuǎn)換):");
for (Student2 st : students) {
System.out.println(st);
}
}
轉(zhuǎn)換結(jié)果
讀取Excel至String數(shù)組:
[1.0000000000001E13, 張三, 2016/01/19, 101.0, 是]
[1.0000000000002E13, 李四, 2017-11-17 10:19:10, 201.0, 否]
[1.0000000000004E13, 王二, 2017/11/17, 301.0, 否]
讀取Excel至對象數(shù)組(支持類型轉(zhuǎn)換):
Student2{id=10000000000001, name='張三', date=Tue Jan 19 00:00:00 CST 2016, classes=101, expel='是'}
Student2{id=10000000000002, name='李四', date=Fri Nov 17 10:19:10 CST 2017, classes=201, expel='否'}
Student2{id=10000000000004, name='王二', date=Fri Nov 17 00:00:00 CST 2017, classes=301, expel='否'}
導(dǎo)出Excel
不基于模板快速導(dǎo)出
導(dǎo)出函數(shù)(/src/test/java/base/Module2Excel.java#testList2Excel)
@Test
public void testList2Excel() throws Exception {
List
> list2 = new ArrayList();
List
header = new ArrayList();
for (int i = 0; i _list = new ArrayList();
for (int j = 0; j
導(dǎo)出效果(截圖)

基于模板List導(dǎo)出
導(dǎo)出函數(shù)(/src/test/java/base/Module2Excel.java#testObject2Excel)
@Test
public void testObject2Excel() throws Exception {
String tempPath = "D:\\IdeaSpace\\Excel4J\\src\\test\\resource\\normal_template.xlsx";
List
list = new ArrayList();
list.add(new Student1("1010001", "蓋倫", "六年級三班"));
list.add(new Student1("1010002", "古爾丹", "一年級三班"));
list.add(new Student1("1010003", "蒙多(被開除了)", "六年級一班"));
list.add(new Student1("1010004", "蘿卜特", "三年級二班"));
list.add(new Student1("1010005", "奧拉基", "三年級二班"));
list.add(new Student1("1010006", "得嘞", "四年級二班"));
list.add(new Student1("1010007", "瓜娃子", "五年級一班"));
list.add(new Student1("1010008", "戰(zhàn)三", "二年級一班"));
list.add(new Student1("1010009", "李四", "一年級一班"));
Map
data = new HashMap();
data.put("title", "戰(zhàn)爭學(xué)院花名冊");
data.put("info", "學(xué)校統(tǒng)一花名冊");
// 基于模板導(dǎo)出Excel
ExcelUtils.getInstance().exportObjects2Excel(tempPath, 0, list, data, Student1.class, false, "D:/A.xlsx");
// 不基于模板導(dǎo)出Excel
ExcelUtils.getInstance().exportObjects2Excel(list, Student1.class, true, null, true, "D:/B.xlsx");
}
導(dǎo)出模板(截圖)

基于模板導(dǎo)出結(jié)果(截圖)

不基于模板導(dǎo)出結(jié)果(截圖)

基于模板Map>導(dǎo)出
導(dǎo)出函數(shù)(/src/test/java/base/Module2Excel.java#testMap2Excel)
@Test
public void testMap2Excel() throws Exception {
Map
classes = new HashMap();
Map
data = new HashMap();
data.put("title", "戰(zhàn)爭學(xué)院花名冊");
data.put("info", "學(xué)校統(tǒng)一花名冊");
classes.put("class_one", new ArrayList
() {{
add(new Student1("1010009", "李四", "一年級一班"));
add(new Student1("1010002", "古爾丹", "一年級三班"));
}});
classes.put("class_two", new ArrayList
() {{
add(new Student1("1010008", "戰(zhàn)三", "二年級一班"));
}});
classes.put("class_three", new ArrayList
() {{
add(new Student1("1010004", "蘿卜特", "三年級二班"));
add(new Student1("1010005", "奧拉基", "三年級二班"));
}});
classes.put("class_four", new ArrayList
() {{ add(new Student1("1010006", "得嘞", "四年級二班")); }}); classes.put("class_six", new ArrayList
() {{ add(new Student1("1010001", "蓋倫", "六年級三班")); add(new Student1("1010003", "蒙多", "六年級一班")); }}); ExcelUtils.getInstance().exportObject2Excel("D:\\IdeaSpace\\Excel4J\\src\\test\\resource\\map_template.xlsx", 0, classes, data, Student1.class, false, "D:/C.xlsx"); }
導(dǎo)出模板(截圖)

導(dǎo)出結(jié)果(截圖)

評論
圖片
表情
