Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
苏木力格
easyexcel
提交
99b7a251
E
easyexcel
项目概览
苏木力格
/
easyexcel
与 Fork 源项目一致
从无法访问的项目Fork
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
easyexcel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
99b7a251
编写于
11月 13, 2018
作者:
J
jipengfei.jpf
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加父类支持
上级
f4093767
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
90 addition
and
52 deletion
+90
-52
src/main/java/com/alibaba/excel/metadata/ExcelHeadProperty.java
...in/java/com/alibaba/excel/metadata/ExcelHeadProperty.java
+9
-2
src/test/java/com/alibaba/easyexcel/test/ReadTest.java
src/test/java/com/alibaba/easyexcel/test/ReadTest.java
+9
-9
src/test/java/com/alibaba/easyexcel/test/WriteTest.java
src/test/java/com/alibaba/easyexcel/test/WriteTest.java
+9
-8
src/test/java/com/alibaba/easyexcel/test/model/BaseReadModel.java
.../java/com/alibaba/easyexcel/test/model/BaseReadModel.java
+28
-0
src/test/java/com/alibaba/easyexcel/test/model/BaseWriteModel.java
...java/com/alibaba/easyexcel/test/model/BaseWriteModel.java
+28
-0
src/test/java/com/alibaba/easyexcel/test/model/ReadModel.java
...test/java/com/alibaba/easyexcel/test/model/ReadModel.java
+1
-23
src/test/java/com/alibaba/easyexcel/test/model/ReadModel2.java
...est/java/com/alibaba/easyexcel/test/model/ReadModel2.java
+1
-1
src/test/java/com/alibaba/easyexcel/test/model/WriteModel.java
...est/java/com/alibaba/easyexcel/test/model/WriteModel.java
+1
-5
src/test/java/com/alibaba/easyexcel/test/util/DataUtil.java
src/test/java/com/alibaba/easyexcel/test/util/DataUtil.java
+4
-4
未找到文件。
src/main/java/com/alibaba/excel/metadata/ExcelHeadProperty.java
浏览文件 @
99b7a251
...
...
@@ -44,9 +44,16 @@ public class ExcelHeadProperty {
*/
private
void
initColumnProperties
()
{
if
(
this
.
headClazz
!=
null
)
{
Field
[]
fields
=
this
.
headClazz
.
getDeclaredFields
();
List
<
Field
>
fieldList
=
new
ArrayList
<
Field
>();
Class
tempClass
=
this
.
headClazz
;
//当父类为null的时候说明到达了最上层的父类(Object类).
while
(
tempClass
!=
null
)
{
fieldList
.
addAll
(
Arrays
.
asList
(
tempClass
.
getDeclaredFields
()));
tempClass
=
tempClass
.
getSuperclass
();
//得到父类,然后赋给自己
}
List
<
List
<
String
>>
headList
=
new
ArrayList
<
List
<
String
>>();
for
(
Field
f
:
field
s
)
{
for
(
Field
f
:
field
List
)
{
initOneColumnProperty
(
f
);
}
//对列排序
...
...
src/test/java/com/alibaba/easyexcel/test/ReadTest.java
浏览文件 @
99b7a251
package
com.alibaba.easyexcel.test
;
import
com.alibaba.easyexcel.test.listen.ExcelListener
;
import
com.alibaba.easyexcel.test.model.
Java
Model
;
import
com.alibaba.easyexcel.test.model.
Java
Model2
;
import
com.alibaba.easyexcel.test.model.
Read
Model
;
import
com.alibaba.easyexcel.test.model.
Read
Model2
;
import
com.alibaba.easyexcel.test.util.FileUtil
;
import
com.alibaba.excel.EasyExcelFactory
;
import
com.alibaba.excel.ExcelReader
;
...
...
@@ -38,7 +38,7 @@ public class ReadTest {
@Test
public
void
simpleReadJavaModelV2007
()
throws
IOException
{
InputStream
inputStream
=
FileUtil
.
getResourcesFileInputStream
(
"2007.xlsx"
);
List
<
Object
>
data
=
EasyExcelFactory
.
read
(
inputStream
,
new
Sheet
(
2
,
1
,
Java
Model
.
class
));
List
<
Object
>
data
=
EasyExcelFactory
.
read
(
inputStream
,
new
Sheet
(
2
,
1
,
Read
Model
.
class
));
inputStream
.
close
();
print
(
data
);
}
...
...
@@ -65,7 +65,7 @@ public class ReadTest {
public
void
saxReadJavaModelV2007
()
throws
IOException
{
InputStream
inputStream
=
FileUtil
.
getResourcesFileInputStream
(
"2007.xlsx"
);
ExcelListener
excelListener
=
new
ExcelListener
();
EasyExcelFactory
.
readBySax
(
inputStream
,
new
Sheet
(
2
,
1
,
Java
Model
.
class
),
excelListener
);
EasyExcelFactory
.
readBySax
(
inputStream
,
new
Sheet
(
2
,
1
,
Read
Model
.
class
),
excelListener
);
inputStream
.
close
();
}
...
...
@@ -87,11 +87,11 @@ public class ReadTest {
excelReader
.
read
(
sheet
);
}
else
if
(
sheet
.
getSheetNo
()
==
2
){
sheet
.
setHeadLineMun
(
1
);
sheet
.
setClazz
(
Java
Model
.
class
);
sheet
.
setClazz
(
Read
Model
.
class
);
excelReader
.
read
(
sheet
);
}
else
if
(
sheet
.
getSheetNo
()
==
3
){
sheet
.
setHeadLineMun
(
1
);
sheet
.
setClazz
(
Java
Model2
.
class
);
sheet
.
setClazz
(
Read
Model2
.
class
);
excelReader
.
read
(
sheet
);
}
}
...
...
@@ -121,7 +121,7 @@ public class ReadTest {
@Test
public
void
simpleReadJavaModelV2003
()
throws
IOException
{
InputStream
inputStream
=
FileUtil
.
getResourcesFileInputStream
(
"2003.xls"
);
List
<
Object
>
data
=
EasyExcelFactory
.
read
(
inputStream
,
new
Sheet
(
2
,
1
,
Java
Model
.
class
));
List
<
Object
>
data
=
EasyExcelFactory
.
read
(
inputStream
,
new
Sheet
(
2
,
1
,
Read
Model
.
class
));
inputStream
.
close
();
print
(
data
);
}
...
...
@@ -148,7 +148,7 @@ public class ReadTest {
public
void
saxReadJavaModelV2003
()
throws
IOException
{
InputStream
inputStream
=
FileUtil
.
getResourcesFileInputStream
(
"2003.xls"
);
ExcelListener
excelListener
=
new
ExcelListener
();
EasyExcelFactory
.
readBySax
(
inputStream
,
new
Sheet
(
2
,
1
,
Java
Model
.
class
),
excelListener
);
EasyExcelFactory
.
readBySax
(
inputStream
,
new
Sheet
(
2
,
1
,
Read
Model
.
class
),
excelListener
);
inputStream
.
close
();
}
...
...
@@ -169,7 +169,7 @@ public class ReadTest {
excelReader
.
read
(
sheet
);
}
else
{
sheet
.
setHeadLineMun
(
2
);
sheet
.
setClazz
(
Java
Model
.
class
);
sheet
.
setClazz
(
Read
Model
.
class
);
excelReader
.
read
(
sheet
);
}
}
...
...
src/test/java/com/alibaba/easyexcel/test/WriteTest.java
浏览文件 @
99b7a251
package
com.alibaba.easyexcel.test
;
import
com.alibaba.easyexcel.test.model.JavaModel1
;
import
com.alibaba.easyexcel.test.model.WriteModel
;
import
com.alibaba.easyexcel.test.util.FileUtil
;
import
com.alibaba.excel.EasyExcelFactory
;
import
com.alibaba.excel.ExcelWriter
;
import
com.alibaba.excel.metadata.Sheet
;
...
...
@@ -34,7 +35,7 @@ public class WriteTest {
writer
.
write1
(
createTestListObject
(),
sheet1
);
//写第二个sheet sheet2 模型上打有表头的注解,合并单元格
Sheet
sheet2
=
new
Sheet
(
2
,
3
,
JavaModel1
.
class
,
"第二个sheet"
,
null
);
Sheet
sheet2
=
new
Sheet
(
2
,
3
,
WriteModel
.
class
,
"第二个sheet"
,
null
);
sheet2
.
setTableStyle
(
createTableStyle
());
//writer.write1(null, sheet2);
writer
.
write
(
createTestListJavaMode
(),
sheet2
);
...
...
@@ -51,7 +52,7 @@ public class WriteTest {
//写sheet2 模型上打有表头的注解
Table
table2
=
new
Table
(
2
);
table2
.
setTableStyle
(
createTableStyle
());
table2
.
setClazz
(
JavaModel1
.
class
);
table2
.
setClazz
(
WriteModel
.
class
);
writer
.
write
(
createTestListJavaMode
(),
sheet3
,
table2
);
writer
.
finish
();
...
...
@@ -62,7 +63,7 @@ public class WriteTest {
@Test
public
void
writeV2007WithTemplate
()
throws
IOException
{
InputStream
inputStream
=
new
BufferedInputStream
(
new
FileInputStream
(
"/Users/jipengfei/temp.xlsx"
)
);
InputStream
inputStream
=
FileUtil
.
getResourcesFileInputStream
(
"temp.xlsx"
);
OutputStream
out
=
new
FileOutputStream
(
"/Users/jipengfei/2007.xlsx"
);
ExcelWriter
writer
=
EasyExcelFactory
.
getWriterWithTemp
(
inputStream
,
out
,
ExcelTypeEnum
.
XLSX
,
true
);
//写第一个sheet, sheet1 数据全是List<String> 无模型映射关系
...
...
@@ -80,7 +81,7 @@ public class WriteTest {
writer
.
write1
(
createTestListObject
(),
sheet1
);
//写第二个sheet sheet2 模型上打有表头的注解,合并单元格
Sheet
sheet2
=
new
Sheet
(
2
,
3
,
JavaModel1
.
class
,
"第二个sheet"
,
null
);
Sheet
sheet2
=
new
Sheet
(
2
,
3
,
WriteModel
.
class
,
"第二个sheet"
,
null
);
sheet2
.
setTableStyle
(
createTableStyle
());
sheet2
.
setStartRow
(
20
);
writer
.
write
(
createTestListJavaMode
(),
sheet2
);
...
...
@@ -96,7 +97,7 @@ public class WriteTest {
//写sheet2 模型上打有表头的注解
Table
table2
=
new
Table
(
2
);
table2
.
setTableStyle
(
createTableStyle
());
table2
.
setClazz
(
JavaModel1
.
class
);
table2
.
setClazz
(
WriteModel
.
class
);
writer
.
write
(
createTestListJavaMode
(),
sheet3
,
table2
);
writer
.
finish
();
...
...
@@ -123,7 +124,7 @@ public class WriteTest {
writer
.
write1
(
createTestListObject
(),
sheet1
);
//写第二个sheet sheet2 模型上打有表头的注解,合并单元格
Sheet
sheet2
=
new
Sheet
(
2
,
3
,
JavaModel1
.
class
,
"第二个sheet"
,
null
);
Sheet
sheet2
=
new
Sheet
(
2
,
3
,
WriteModel
.
class
,
"第二个sheet"
,
null
);
sheet2
.
setTableStyle
(
createTableStyle
());
writer
.
write
(
createTestListJavaMode
(),
sheet2
);
...
...
@@ -137,7 +138,7 @@ public class WriteTest {
//写sheet2 模型上打有表头的注解
Table
table2
=
new
Table
(
2
);
table2
.
setTableStyle
(
createTableStyle
());
table2
.
setClazz
(
JavaModel1
.
class
);
table2
.
setClazz
(
WriteModel
.
class
);
writer
.
write
(
createTestListJavaMode
(),
sheet3
,
table2
);
writer
.
finish
();
...
...
src/test/java/com/alibaba/easyexcel/test/model/BaseReadModel.java
0 → 100644
浏览文件 @
99b7a251
package
com.alibaba.easyexcel.test.model
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.metadata.BaseRowModel
;
public
class
BaseReadModel
extends
BaseRowModel
{
@ExcelProperty
(
index
=
0
)
protected
String
str
;
@ExcelProperty
(
index
=
1
)
protected
Float
ff
;
public
String
getStr
()
{
return
str
;
}
public
void
setStr
(
String
str
)
{
this
.
str
=
str
;
}
public
Float
getFf
()
{
return
ff
;
}
public
void
setFf
(
Float
ff
)
{
this
.
ff
=
ff
;
}
}
src/test/java/com/alibaba/easyexcel/test/model/BaseWriteModel.java
0 → 100644
浏览文件 @
99b7a251
package
com.alibaba.easyexcel.test.model
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.metadata.BaseRowModel
;
public
class
BaseWriteModel
extends
BaseRowModel
{
@ExcelProperty
(
value
=
{
"表头1"
,
"表头1"
,
"表头31"
},
index
=
0
)
protected
String
p1
;
@ExcelProperty
(
value
=
{
"表头1"
,
"表头1"
,
"表头32"
},
index
=
1
)
protected
String
p2
;
public
String
getP1
()
{
return
p1
;
}
public
void
setP1
(
String
p1
)
{
this
.
p1
=
p1
;
}
public
String
getP2
()
{
return
p2
;
}
public
void
setP2
(
String
p2
)
{
this
.
p2
=
p2
;
}
}
src/test/java/com/alibaba/easyexcel/test/model/
Java
Model.java
→
src/test/java/com/alibaba/easyexcel/test/model/
Read
Model.java
浏览文件 @
99b7a251
package
com.alibaba.easyexcel.test.model
;
import
com.alibaba.excel.annotation.ExcelProperty
;
import
com.alibaba.excel.metadata.BaseRowModel
;
import
java.math.BigDecimal
;
import
java.util.Date
;
public
class
JavaModel
extends
BaseRowModel
{
@ExcelProperty
(
index
=
0
)
private
String
str
;
@ExcelProperty
(
index
=
1
)
private
Float
ff
;
public
class
ReadModel
extends
BaseReadModel
{
@ExcelProperty
(
index
=
2
)
private
Integer
mm
;
...
...
@@ -37,22 +31,6 @@ public class JavaModel extends BaseRowModel {
@ExcelProperty
(
index
=
18
)
private
String
kk
;
public
String
getStr
()
{
return
str
;
}
public
void
setStr
(
String
str
)
{
this
.
str
=
str
;
}
public
Float
getFf
()
{
return
ff
;
}
public
void
setFf
(
Float
ff
)
{
this
.
ff
=
ff
;
}
public
Integer
getMm
()
{
return
mm
;
...
...
src/test/java/com/alibaba/easyexcel/test/model/
Java
Model2.java
→
src/test/java/com/alibaba/easyexcel/test/model/
Read
Model2.java
浏览文件 @
99b7a251
...
...
@@ -6,7 +6,7 @@ import com.alibaba.excel.metadata.BaseRowModel;
import
java.math.BigDecimal
;
import
java.util.Date
;
public
class
Java
Model2
extends
BaseRowModel
{
public
class
Read
Model2
extends
BaseRowModel
{
@ExcelProperty
(
index
=
0
)
private
String
str
;
...
...
src/test/java/com/alibaba/easyexcel/test/model/
JavaModel1
.java
→
src/test/java/com/alibaba/easyexcel/test/model/
WriteModel
.java
浏览文件 @
99b7a251
...
...
@@ -6,13 +6,9 @@ import com.alibaba.excel.metadata.BaseRowModel;
import
java.math.BigDecimal
;
import
java.util.Date
;
public
class
JavaModel1
extends
BaseRow
Model
{
public
class
WriteModel
extends
BaseWrite
Model
{
@ExcelProperty
(
value
=
{
"表头1"
,
"表头1"
,
"表头31"
},
index
=
0
)
private
String
p1
;
@ExcelProperty
(
value
=
{
"表头1"
,
"表头1"
,
"表头32"
},
index
=
1
)
private
String
p2
;
@ExcelProperty
(
value
=
{
"表头3"
,
"表头3"
,
"表头3"
},
index
=
2
)
private
int
p3
;
...
...
src/test/java/com/alibaba/easyexcel/test/util/DataUtil.java
浏览文件 @
99b7a251
package
com.alibaba.easyexcel.test.util
;
import
com.alibaba.easyexcel.test.model.
JavaModel1
;
import
com.alibaba.easyexcel.test.model.
WriteModel
;
import
com.alibaba.excel.metadata.Font
;
import
com.alibaba.excel.metadata.TableStyle
;
import
org.apache.poi.ss.usermodel.IndexedColors
;
...
...
@@ -54,10 +54,10 @@ public class DataUtil {
return
head
;
}
public
static
List
<
JavaModel1
>
createTestListJavaMode
(){
List
<
JavaModel1
>
model1s
=
new
ArrayList
<
JavaModel1
>();
public
static
List
<
WriteModel
>
createTestListJavaMode
(){
List
<
WriteModel
>
model1s
=
new
ArrayList
<
WriteModel
>();
for
(
int
i
=
0
;
i
<
10000
;
i
++)
{
JavaModel1
model1
=
new
JavaModel1
();
WriteModel
model1
=
new
WriteModel
();
model1
.
setP1
(
"第一列,第行"
);
model1
.
setP2
(
"121212jjj"
);
model1
.
setP3
(
33
+
i
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录