Skip to content

Commit d966b6d

Browse files
committed
增加简单类型写入支持,具体请看更新记录
1 parent 9d309d8 commit d966b6d

25 files changed

Lines changed: 653 additions & 83 deletions

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Created by .ignore support plugin (hsz.mobi)
2+
.idea

README.md

Lines changed: 70 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,12 @@
99
* 依赖POI,使用Maven构建
1010
## 更新纪录
1111

12+
### 更新2016/11/29
13+
* 增加了简单类型得写入,生成xls/xlsx
14+
* 直接JavaBean类型写入,注解命名
15+
* 支持Map key-value类型写入
16+
* 写入时支持和读取一样得过滤加工排序等写法
17+
1218
### 更新2016/11/29
1319
* 增加CreateMap By Key
1420
* 去除无用泛型
@@ -38,16 +44,75 @@
3844
|bar | bar | bar |
3945
|baz | baz | baz |
4046

47+
## 写入例子
48+
```java
49+
List<A> aa = new ArrayList<>();
50+
aa.add(new A("a", "b"));
51+
aa.add(new A("aa", "bb"));
52+
ExcelFactory.saveExcel(aa, System.getProperty("user.dir").concat("\\Save.xlsx")
53+
).Process((A a) -> a.setA("xxxxxxx")).FilterCol(() -> new String[]{"B"}).
54+
Filter((A a) -> a.getA().length() > 1).Save();
55+
List<Map> m = new ArrayList<>();
56+
Map mm = new HashMap();
57+
mm.put("A", "w");
58+
mm.put("A1", "w2");
59+
mm.put("A2", "w3");
60+
Map mmm = new HashMap();
61+
mmm.put("A", "23");
62+
mmm.put("A1", "w3asf2");
63+
mmm.put("A2", "w二3");
64+
m.add(mm);
65+
m.add(mmm);
66+
ExcelFactory.saveExcel(m, System.getProperty("user.dir").concat("\\SaveMap.xlsx")
67+
).Save();
68+
```
69+
## 读取例子
70+
```java
71+
List<Map<String,String>> data=ExcelFactory.getBeans(System.getProperty("user.dir").concat("\\测试.xls"),
72+
new ResWrapperMap() {
73+
@Override//配置Excel属性
74+
protected void LoadConfig(Config config) {
75+
config.setContent_row_start(3);
76+
config.setTitle_row(2);
77+
}
78+
}).//这里能够处理每一行数据
79+
Process((HashMap<String, String> o) -> System.out.println(o + "\n")
80+
//这里能够处理时候过滤某一列
81+
).FilterCol(() -> new String[]{}
82+
//这里能根据某一行的某一列的内容来取舍这行数据
83+
).Filter((HashMap<String, String> o) -> o.get("创建人") != null && o.get("创建人").length() > 5
84+
//排序
85+
).Sort((o1, o2) -> o1.hashCode()>o2.hashCode()?1:hashCode()==o2.hashCode()?0:-1).Create();
86+
87+
//使用 .CreateMap(key_v) 生成Map<Key,Map>类型数据
88+
89+
```
90+
生成对应自定义类型的写法
91+
92+
```java
93+
Map<String,Seven> map=new ResWrapperObj(Seven) {
94+
@Override
95+
protected void LoadConfig(Config config) {
96+
config.setContent_row_start(3);
97+
config.setTitle_row(2);
98+
}
99+
}).
100+
Process((HashMap<String, String> o) -> {}
101+
).FilterCol(() -> new String[]{}
102+
).Filter((HashMap<String, String> o) -> o.get("创建人") != null &&
103+
```
41104
## 效果
42-
![ExcelReadshua](效果.png)
105+
![ExcelReads](效果.png)
43106
## 实体类截图
44-
![ExcelReadshua](实体类.png)
107+
![ExcelReads](实体类.png)
45108
## 继承关系
46-
![ExcelReadshua](关系.png)
109+
![ExcelReads](关系.png)
47110
## 加载Map模式
48-
![ExcelReadshua](pic1.png)
111+
![ExcelReads](pic1.png)
49112
## 加载Bean模式
50-
![ExcelReadshua](pic2.png)
113+
![ExcelReads](pic2.png)
114+
## 写入效果
115+
![ExcelReads](write.png)
51116

52117
* 邮件(hacker.kill07@gmail.com)
53118
* QQ: 985390927

Save.xlsx

3.3 KB
Binary file not shown.

SaveMap.xlsx

3.35 KB
Binary file not shown.

src/main/java/seven/ExcelFactory.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
package seven;
22

3+
import seven.savewapper.SaveExcel;
4+
import seven.savewapper.wapperRef.sysWppers.ResExprotMap;
5+
import seven.savewapper.wapperRef.sysWppers.ResExprotObj;
36
import seven.wapperInt.Wrapper;
47
import seven.wapperInt.wapperRef.WrapperObj;
58

9+
import java.util.List;
10+
import java.util.Map;
11+
612

713
//=======================================================
814
// .----.
@@ -30,7 +36,16 @@ private ExcelFactory() {
3036
}
3137

3238
public static Wrapper getBeans(String FilePath, WrapperObj r) throws Exception {
33-
return r.init(FilePath);
39+
return (Wrapper)r.init(FilePath);
40+
}
41+
public static SaveExcel saveExcel(List<? extends Object> bean, String FilePath) throws Exception {
42+
if (bean.size() < 1) {
43+
throw new Exception("请传入数据");
44+
}
45+
if (bean.get(0) instanceof Map) {
46+
return new ResExprotMap((List<Map>) bean,FilePath);
47+
}
48+
return new ResExprotObj((List)bean, FilePath);
3449
}
3550

3651
}

src/main/java/seven/wapperInt/callBack/DataFilterColumnInterface.java renamed to src/main/java/seven/callBack/DataFilterColumnInterface.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package seven.wapperInt.callBack;
1+
package seven.callBack;
22

33
/**
44
* [Github]https://github.com/MatrixSeven

src/main/java/seven/wapperInt/callBack/DataFilterInterface.java renamed to src/main/java/seven/callBack/DataFilterInterface.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package seven.wapperInt.callBack;
1+
package seven.callBack;
22

33
/**
44
* [Github]https://github.com/MatrixSeven

src/main/java/seven/wapperInt/callBack/DataFilterProcessInterface.java renamed to src/main/java/seven/callBack/DataFilterProcessInterface.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package seven.wapperInt.callBack;
1+
package seven.callBack;
22

33

44

src/main/java/seven/wapperInt/callBack/DataFiterColumnInterface.java renamed to src/main/java/seven/callBack/DataFiterColumnInterface.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package seven.wapperInt.callBack;
1+
package seven.callBack;
22

33
/**
44
* [Github]https://github.com/MatrixSeven

src/main/java/seven/wapperInt/callBack/imp/DefaultDataFilter.java renamed to src/main/java/seven/callBack/imp/DefaultDataFilter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
package seven.wapperInt.callBack.imp;
1+
package seven.callBack.imp;
22

3-
import seven.wapperInt.callBack.DataFilterInterface;
3+
import seven.callBack.DataFilterInterface;
44

55
/**
66
* [Github]https://github.com/MatrixSeven

0 commit comments

Comments
 (0)