JiaLiAoJava 的 Excel 讀寫庫
jialiao(加里奧)
全都是彩蛋的Excel讀寫庫
Jiliao.r(Data.class) //選擇友方英雄(選擇目標(biāo)) .w() //w吸收傷害并嘲諷(讀) / .e() //e擊飛(寫) .q() //持續(xù)傷害(返回結(jié)果)
開始使用
pom.xml增加依賴
<dependency> <groupId>com.github.liuyuyu</groupId> <artifactId>jialiao</artifactId> <version>1.0.1</version> </dependency>
梨子代碼
//設(shè)置時間格式
ObjectMapper mapper = new ObjectMapper();
SimpleDateFormat myDateFormat = new SimpleDateFormat("yyyy-MM-dd HH????ss");
mapper.setDateFormat(myDateFormat);
JiaLiAo.renascence(mapper);
//準(zhǔn)備數(shù)據(jù)
List<UserOrder> dataList = IntStream.range(0, 100)
.boxed()
.map(i -> {
UserOrder userOrder = new UserOrder();
userOrder.setMobile("1330000" + i);
userOrder.setTotalMoney(BigDecimal.valueOf(i));
userOrder.setTotalOrder(Long.valueOf(i));
userOrder.setUserName("user-" + i);
userOrder.setCreatedTime(new Date());
return userOrder;
})
.collect(Collectors.toList());
//導(dǎo)出
OutputStream os = new FileOutputStream("out/userOrder.xlsx");
JiaLiAo.r(UserOrder.class, false)
.e(dataList)
.q("導(dǎo)出的訂單", os);
//導(dǎo)入
List<UserOrder> list = JiaLiAo.r(UserOrder.class, Boolean.FALSE)
.w(Boolean.TRUE, new FileInputStream("out/userOrder.xlsx"))
.q();
改變導(dǎo)出Excel的順序和名稱
JiaLiAo.ExcelCell的order表示字段的順序(不是index),數(shù)字越小越靠前。value是字段對應(yīng)表頭的名稱。cellType是導(dǎo)出單元格的數(shù)據(jù)類型,不能保證一定符合
@JiaLiAo.ExcelCell(value = "訂單總數(shù)",order = 1,cellType = CellType.NUMERIC) private Long totalOrder;
格式轉(zhuǎn)換
為了少寫輪子代碼,類型轉(zhuǎn)換借用了Jackson。如果需要轉(zhuǎn)換格式,比如日期、金額。可以使用renascence方法改變Jackson的ObjectMapper的配置
//設(shè)置時間格式
ObjectMapper mapper = new ObjectMapper();
SimpleDateFormat myDateFormat = new SimpleDateFormat("yyyy-MM-dd HH????ss");
mapper.setDateFormat(myDateFormat);
JiaLiAo.renascence(mapper);
忽略屬性
因?yàn)橐蕾嘕ackson,所有Jackson的注解都可以用
/** * 訂單總金額 */ @JsonIgnore private BigDecimal totalMoney;
其他
Jackson的其他騷操作也可以用起來了。
依賴
-
POI
-
Jackson
-
Java 8
有多強(qiáng)?
看這戰(zhàn)績就應(yīng)該知道加里奧有多厲害了(傲嬌臉)
評論
圖片
表情
