直接上代碼,我自己能看懂就行(嘻嘻)
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.metadata.Sheet;
import cwbb.qtkjzd_mjfyl.qtkjzdhxzgsb01341.XjllbmjfylzzGridlb;
import cwbb.qtkjzd_mjfyl.qtkjzdhxzgsb01341.YwhdbmjfylzzGridlb;
import cwbb.qtkjzd_mjfyl.qtkjzdhxzgsb01341.ZcfzbmjfylzzGridlb;
import net.sf.json.JSONArray;
import org.junit.Test;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.math.BigDecimal;
import java.util.*;
public class MainTests {
@Test
public void test1() {
// 讀取 excel 表格的路徑
String readPath = "D:\\).xlsx";
try {
// sheetNo --> 讀取哪一個 表單
// headLineMun --> 從哪一行開始讀取( 不包括定義的這一行,比如 headLineMun為2 ,那麼取出來的資料是從 第三行的資料開始讀取 )
// clazz --> 将讀取的資料,轉化成對應的實體,需要 extends BaseRowModel
Sheet sheet = new Sheet(3, 5, XjllbmjfylzzGridlb.class);
List<Object> readList = EasyExcelFactory.read(new FileInputStream(readPath), sheet);
LinkedList<Object> l = new LinkedList<>();
for (Object obj : readList) {
Long l1 = ((XjllbmjfylzzGridlb) obj).getEwbhxh();
String l2 = ((XjllbmjfylzzGridlb) obj).getXmmc();
BigDecimal l3 = ((XjllbmjfylzzGridlb) obj).getJe();
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
if (l1 != null) {
map.put("行次", l1);
map.put("項目", l2);
map.put("金額", l3);
l.add(map);
}
}
JSONArray jsonArray = JSONArray.fromObject(l);
System.out.println(jsonArray);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Test
public void test2() {
String readPath = ".xlsx";
try {
Sheet sheet = new Sheet(2, 6, YwhdbmjfylzzGridlb.class);
List<Object> readList = EasyExcelFactory.read(new FileInputStream(readPath), sheet);
LinkedList<Object> l = new LinkedList<>();
for (Object obj : readList) {
Long l1 = ((YwhdbmjfylzzGridlb) obj).getEwbhxh();
String l2 = ((YwhdbmjfylzzGridlb) obj).getXmmc();
BigDecimal l3 = ((YwhdbmjfylzzGridlb) obj).getFxdxbys();
BigDecimal l4 = ((YwhdbmjfylzzGridlb) obj).getXdxbys();
BigDecimal l5 = ((YwhdbmjfylzzGridlb) obj).getHjbys();
BigDecimal l6 = ((YwhdbmjfylzzGridlb) obj).getFdxdxbnljs();
BigDecimal l7 = ((YwhdbmjfylzzGridlb) obj).getXdxbnljs();
BigDecimal l8 = ((YwhdbmjfylzzGridlb) obj).getHjbnljs();
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
if (l1 != null) {
if (l1 == 13) {
map.put("行次", l1);
map.put("項目", "成本1");
l.add(map);
} else {
map.put("行次", l1);
map.put("項目", l2);
l.add(map);
}
}
}
JSONArray jsonArray = JSONArray.fromObject(l);
System.out.println(jsonArray);
} catch (Exception e) {
e.printStackTrace();
}
}
@Test
public void test3() {
String readPath = "D:\\5.xlsx";
try {
Sheet sheet = new Sheet(1, 5, ZcfzbmjfylzzGridlb.class);
List<Object> readList = EasyExcelFactory.read(new FileInputStream(readPath), sheet);
LinkedList<Object> l = new LinkedList<>();
for (Object obj : readList) {
Long l1 = ((ZcfzbmjfylzzGridlb) obj).getEwbhxh();
String l2 = ((ZcfzbmjfylzzGridlb) obj).getZcxmmc();
BigDecimal l3 = ((ZcfzbmjfylzzGridlb) obj).getNcyeZc();
BigDecimal l4 = ((ZcfzbmjfylzzGridlb) obj).getQmyeZc();
if (l1 != null) {
LinkedHashMap<String, Object> map1 = new LinkedHashMap<>();
map1.put("行次", l1);
l.add(map1);
}
}
for (Object obj : readList) {
Long l5 = ((ZcfzbmjfylzzGridlb) obj).getEwbhxh2();
String l6 = ((ZcfzbmjfylzzGridlb) obj).getQyxmmc();
BigDecimal l7 = ((ZcfzbmjfylzzGridlb) obj).getNcyeQy();
BigDecimal l8 = ((ZcfzbmjfylzzGridlb) obj).getQmyeQy();
if (l5 != null) {
LinkedHashMap<String, Object> map2 = new LinkedHashMap<>();
map2.put("行次", l5);
l.add(map2);
}
}
JSONArray jsonArray = JSONArray.fromObject(l);
System.out.println(jsonArray);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
實體類
public class XjllbmjfylzzGridlb extends BaseRowModel {
/** 二維表行序号 */
/*index代表讀取的是excel的第幾列,從0開始*/
@ExcelProperty(index = 1)
private Long ewbhxh;
/** 項目名稱 */
@ExcelProperty(index = 0)
private String xmmc;
/** 金額 */
@ExcelProperty(index = 2)
private BigDecimal je;
public XjllbmjfylzzGridlb() {
}
public XjllbmjfylzzGridlb(Long ewbhxh, String xmmc, BigDecimal je) {
this.ewbhxh = ewbhxh;
this.xmmc = xmmc;
this.je = je;
}
public Long getEwbhxh() {
return ewbhxh;
}
public void setEwbhxh(Long ewbhxh) {
this.ewbhxh = ewbhxh;
}
public String getXmmc() {
return xmmc;
}
public void setXmmc(String xmmc) {
this.xmmc = xmmc;
}
public BigDecimal getJe() {
return je;
}
public void setJe(BigDecimal je) {
this.je = je;
}
}