Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_879456671
easyexcel
提交
b2102159
E
easyexcel
项目概览
qq_879456671
/
easyexcel
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
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,发现更多精彩内容 >>
提交
b2102159
编写于
4月 09, 2021
作者:
庄家钜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
删除集合工具类
上级
36924bbe
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
37 addition
and
77 deletion
+37
-77
pom.xml
pom.xml
+1
-1
src/main/java/com/alibaba/excel/analysis/ExcelAnalyserImpl.java
...in/java/com/alibaba/excel/analysis/ExcelAnalyserImpl.java
+1
-1
src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java
.../java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java
+1
-1
src/main/java/com/alibaba/excel/analysis/v07/handlers/RowTagHandler.java
...om/alibaba/excel/analysis/v07/handlers/RowTagHandler.java
+5
-6
src/main/java/com/alibaba/excel/cache/Ehcache.java
src/main/java/com/alibaba/excel/cache/Ehcache.java
+16
-14
src/main/java/com/alibaba/excel/metadata/property/ExcelHeadProperty.java
...om/alibaba/excel/metadata/property/ExcelHeadProperty.java
+1
-1
src/main/java/com/alibaba/excel/util/CollectionUtils.java
src/main/java/com/alibaba/excel/util/CollectionUtils.java
+0
-22
src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java
...m/alibaba/excel/write/executor/ExcelWriteAddExecutor.java
+1
-1
src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java
.../alibaba/excel/write/executor/ExcelWriteFillExecutor.java
+9
-10
src/main/java/com/alibaba/excel/write/metadata/holder/AbstractWriteHolder.java
...baba/excel/write/metadata/holder/AbstractWriteHolder.java
+1
-1
src/main/java/com/alibaba/excel/write/style/column/LongestMatchColumnWidthStyleStrategy.java
...te/style/column/LongestMatchColumnWidthStyleStrategy.java
+1
-1
src/test/java/com/alibaba/easyexcel/test/demo/fill/FillTest.java
...t/java/com/alibaba/easyexcel/test/demo/fill/FillTest.java
+0
-18
src/test/resources/demo/fill/no_variable.xlsx
src/test/resources/demo/fill/no_variable.xlsx
+0
-0
未找到文件。
pom.xml
浏览文件 @
b2102159
...
...
@@ -179,7 +179,7 @@
<dependency>
<groupId>
com.alibaba.p3c
</groupId>
<artifactId>
p3c-pmd
</artifactId>
<version>
2.1.1
</version>
<version>
1.3.6
</version>
</dependency>
</dependencies>
</plugin>
...
...
src/main/java/com/alibaba/excel/analysis/ExcelAnalyserImpl.java
浏览文件 @
b2102159
...
...
@@ -3,6 +3,7 @@ package com.alibaba.excel.analysis;
import
java.io.InputStream
;
import
java.util.List
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.poi.hssf.record.crypto.Biff8EncryptionKey
;
import
org.apache.poi.poifs.crypt.Decryptor
;
import
org.apache.poi.poifs.filesystem.DocumentFactoryHelper
;
...
...
@@ -26,7 +27,6 @@ import com.alibaba.excel.read.metadata.holder.ReadWorkbookHolder;
import
com.alibaba.excel.read.metadata.holder.xls.XlsReadWorkbookHolder
;
import
com.alibaba.excel.read.metadata.holder.xlsx.XlsxReadWorkbookHolder
;
import
com.alibaba.excel.support.ExcelTypeEnum
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.util.DateUtils
;
import
com.alibaba.excel.util.FileUtils
;
import
com.alibaba.excel.util.NumberDataFormatterUtils
;
...
...
src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java
浏览文件 @
b2102159
...
...
@@ -12,6 +12,7 @@ import java.util.UUID;
import
javax.xml.parsers.SAXParser
;
import
javax.xml.parsers.SAXParserFactory
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.poi.openxml4j.opc.OPCPackage
;
import
org.apache.poi.openxml4j.opc.PackageAccess
;
import
org.apache.poi.openxml4j.opc.PackagePart
;
...
...
@@ -37,7 +38,6 @@ import com.alibaba.excel.exception.ExcelAnalysisException;
import
com.alibaba.excel.metadata.CellExtra
;
import
com.alibaba.excel.read.metadata.ReadSheet
;
import
com.alibaba.excel.read.metadata.holder.xlsx.XlsxReadWorkbookHolder
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.util.FileUtils
;
import
com.alibaba.excel.util.SheetUtils
;
import
com.alibaba.excel.util.StringUtils
;
...
...
src/main/java/com/alibaba/excel/analysis/v07/handlers/RowTagHandler.java
浏览文件 @
b2102159
...
...
@@ -2,17 +2,17 @@ package com.alibaba.excel.analysis.v07.handlers;
import
java.util.LinkedHashMap
;
import
org.xml.sax.Attributes
;
import
com.alibaba.excel.constant.ExcelXmlConstants
;
import
com.alibaba.excel.context.xlsx.XlsxReadContext
;
import
com.alibaba.excel.enums.RowTypeEnum
;
import
com.alibaba.excel.metadata.Cell
;
import
com.alibaba.excel.read.metadata.holder.ReadRowHolder
;
import
com.alibaba.excel.read.metadata.holder.xlsx.XlsxReadSheetHolder
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.util.PositionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.xml.sax.Attributes
;
/**
* Cell Handler
*
...
...
@@ -40,13 +40,12 @@ public class RowTagHandler extends AbstractXlsxTagHandler {
@Override
public
void
endElement
(
XlsxReadContext
xlsxReadContext
,
String
name
)
{
XlsxReadSheetHolder
xlsxReadSheetHolder
=
xlsxReadContext
.
xlsxReadSheetHolder
();
RowTypeEnum
rowType
=
CollectionUtils
.
isEmpty
(
xlsxReadSheetHolder
.
getCellMap
())
?
RowTypeEnum
.
EMPTY
:
RowTypeEnum
.
DATA
;
RowTypeEnum
rowType
=
MapUtils
.
isEmpty
(
xlsxReadSheetHolder
.
getCellMap
())
?
RowTypeEnum
.
EMPTY
:
RowTypeEnum
.
DATA
;
xlsxReadContext
.
readRowHolder
(
new
ReadRowHolder
(
xlsxReadSheetHolder
.
getRowIndex
(),
rowType
,
xlsxReadSheetHolder
.
getGlobalConfiguration
(),
xlsxReadSheetHolder
.
getCellMap
()));
xlsxReadContext
.
analysisEventProcessor
().
endRow
(
xlsxReadContext
);
xlsxReadSheetHolder
.
setColumnIndex
(
null
);
xlsxReadSheetHolder
.
setCellMap
(
new
LinkedHashMap
<
Integer
,
Cell
>());
xlsxReadSheetHolder
.
setCellMap
(
new
LinkedHashMap
<>());
}
}
src/main/java/com/alibaba/excel/cache/Ehcache.java
浏览文件 @
b2102159
...
...
@@ -2,8 +2,11 @@ package com.alibaba.excel.cache;
import
java.io.File
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.UUID
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.MapUtils
;
import
org.ehcache.CacheManager
;
import
org.ehcache.config.CacheConfiguration
;
import
org.ehcache.config.builders.CacheConfigurationBuilder
;
...
...
@@ -14,7 +17,6 @@ import org.slf4j.Logger;
import
org.slf4j.LoggerFactory
;
import
com.alibaba.excel.context.AnalysisContext
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.util.FileUtils
;
/**
...
...
@@ -32,11 +34,11 @@ public class Ehcache implements ReadCache {
* Key index
*/
private
int
index
=
0
;
private
HashMap
<
Integer
,
String
>
dataMap
=
new
HashMap
<
Integer
,
String
>(
BATCH_COUNT
*
4
/
3
+
1
);
private
static
CacheManager
fileCacheManager
;
private
static
CacheConfiguration
<
Integer
,
HashMap
>
fileCacheConfiguration
;
private
static
CacheManager
activeCacheManager
;
private
CacheConfiguration
<
Integer
,
HashMap
>
activeCacheConfiguration
;
private
HashMap
<
Integer
,
String
>
dataMap
=
new
HashMap
<>(
BATCH_COUNT
*
4
/
3
+
1
);
private
static
final
CacheManager
FILE_CACHE_MANAGER
;
private
static
final
CacheConfiguration
<
Integer
,
HashMap
>
FILE_CACHE_CONFIGURATION
;
private
static
final
CacheManager
ACTIVE_CACHE_MANAGER
;
private
final
CacheConfiguration
<
Integer
,
HashMap
>
activeCacheConfiguration
;
/**
* Bulk storage data
*/
...
...
@@ -61,10 +63,10 @@ public class Ehcache implements ReadCache {
static
{
File
cacheFile
=
FileUtils
.
createCacheTmpFile
();
fileCacheManager
=
FILE_CACHE_MANAGER
=
CacheManagerBuilder
.
newCacheManagerBuilder
().
with
(
CacheManagerBuilder
.
persistence
(
cacheFile
)).
build
(
true
);
activeCacheManager
=
CacheManagerBuilder
.
newCacheManagerBuilder
().
build
(
true
);
fileCacheConfiguration
=
CacheConfigurationBuilder
ACTIVE_CACHE_MANAGER
=
CacheManagerBuilder
.
newCacheManagerBuilder
().
build
(
true
);
FILE_CACHE_CONFIGURATION
=
CacheConfigurationBuilder
.
newCacheConfigurationBuilder
(
Integer
.
class
,
HashMap
.
class
,
ResourcePoolsBuilder
.
newResourcePoolsBuilder
().
disk
(
10
,
MemoryUnit
.
GB
))
.
withSizeOfMaxObjectGraph
(
1000
*
1000L
).
withSizeOfMaxObjectSize
(
10
,
MemoryUnit
.
GB
).
build
();
...
...
@@ -73,8 +75,8 @@ public class Ehcache implements ReadCache {
@Override
public
void
init
(
AnalysisContext
analysisContext
)
{
cacheAlias
=
UUID
.
randomUUID
().
toString
();
fileCache
=
fileCacheManager
.
createCache
(
cacheAlias
,
fileCacheConfiguration
);
activeCache
=
activeCacheManager
.
createCache
(
cacheAlias
,
activeCacheConfiguration
);
fileCache
=
FILE_CACHE_MANAGER
.
createCache
(
cacheAlias
,
FILE_CACHE_CONFIGURATION
);
activeCache
=
ACTIVE_CACHE_MANAGER
.
createCache
(
cacheAlias
,
activeCacheConfiguration
);
}
@Override
...
...
@@ -113,7 +115,7 @@ public class Ehcache implements ReadCache {
@Override
public
void
putFinished
()
{
if
(
Collection
Utils
.
isEmpty
(
dataMap
))
{
if
(
Map
Utils
.
isEmpty
(
dataMap
))
{
return
;
}
fileCache
.
put
(
index
/
BATCH_COUNT
,
dataMap
);
...
...
@@ -121,8 +123,8 @@ public class Ehcache implements ReadCache {
@Override
public
void
destroy
()
{
fileCacheManager
.
removeCache
(
cacheAlias
);
activeCacheManager
.
removeCache
(
cacheAlias
);
FILE_CACHE_MANAGER
.
removeCache
(
cacheAlias
);
ACTIVE_CACHE_MANAGER
.
removeCache
(
cacheAlias
);
}
}
src/main/java/com/alibaba/excel/metadata/property/ExcelHeadProperty.java
浏览文件 @
b2102159
...
...
@@ -8,6 +8,7 @@ import java.util.List;
import
java.util.Map
;
import
java.util.TreeMap
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -21,7 +22,6 @@ import com.alibaba.excel.exception.ExcelCommonException;
import
com.alibaba.excel.metadata.Head
;
import
com.alibaba.excel.metadata.Holder
;
import
com.alibaba.excel.util.ClassUtils
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.util.StringUtils
;
import
com.alibaba.excel.write.metadata.holder.AbstractWriteHolder
;
...
...
src/main/java/com/alibaba/excel/util/CollectionUtils.java
已删除
100644 → 0
浏览文件 @
36924bbe
package
com.alibaba.excel.util
;
import
java.util.Collection
;
import
java.util.Map
;
/**
* Collection utils
*
* @author jipengfei
*/
public
class
CollectionUtils
{
private
CollectionUtils
()
{}
public
static
boolean
isEmpty
(
Collection
<?>
collection
)
{
return
(
collection
==
null
||
collection
.
isEmpty
());
}
public
static
boolean
isEmpty
(
Map
<?,
?>
map
)
{
return
(
map
==
null
||
map
.
isEmpty
());
}
}
src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java
浏览文件 @
b2102159
...
...
@@ -14,7 +14,6 @@ import com.alibaba.excel.metadata.CellData;
import
com.alibaba.excel.metadata.Head
;
import
com.alibaba.excel.metadata.property.ExcelContentProperty
;
import
com.alibaba.excel.util.ClassUtils
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.util.FieldUtils
;
import
com.alibaba.excel.util.WorkBookUtil
;
import
com.alibaba.excel.util.WriteHandlerUtils
;
...
...
@@ -23,6 +22,7 @@ import com.alibaba.excel.write.metadata.holder.WriteSheetHolder;
import
com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder
;
import
net.sf.cglib.beans.BeanMap
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.Row
;
...
...
src/main/java/com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java
浏览文件 @
b2102159
...
...
@@ -9,12 +9,6 @@ import java.util.List;
import
java.util.Map
;
import
java.util.Set
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.CellType
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
import
com.alibaba.excel.context.WriteContext
;
import
com.alibaba.excel.enums.CellDataTypeEnum
;
import
com.alibaba.excel.enums.WriteDirectionEnum
;
...
...
@@ -22,7 +16,6 @@ import com.alibaba.excel.enums.WriteTemplateAnalysisCellTypeEnum;
import
com.alibaba.excel.exception.ExcelGenerateException
;
import
com.alibaba.excel.metadata.CellData
;
import
com.alibaba.excel.metadata.property.ExcelContentProperty
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.util.StringUtils
;
import
com.alibaba.excel.util.WriteHandlerUtils
;
import
com.alibaba.excel.write.metadata.fill.AnalysisCell
;
...
...
@@ -31,6 +24,12 @@ import com.alibaba.excel.write.metadata.fill.FillWrapper;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
import
net.sf.cglib.beans.BeanMap
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.poi.ss.usermodel.Cell
;
import
org.apache.poi.ss.usermodel.CellStyle
;
import
org.apache.poi.ss.usermodel.CellType
;
import
org.apache.poi.ss.usermodel.Row
;
import
org.apache.poi.ss.usermodel.Sheet
;
/**
* Fill the data into excel
...
...
@@ -179,6 +178,9 @@ public class ExcelWriteFillExecutor extends AbstractExcelWriteExecutor {
private
void
doFill
(
List
<
AnalysisCell
>
analysisCellList
,
Object
oneRowData
,
FillConfig
fillConfig
,
Integer
relativeRowIndex
)
{
if
(
CollectionUtils
.
isEmpty
(
analysisCellList
))
{
return
;
}
Map
dataMap
;
if
(
oneRowData
instanceof
Map
)
{
dataMap
=
(
Map
)
oneRowData
;
...
...
@@ -188,9 +190,6 @@ public class ExcelWriteFillExecutor extends AbstractExcelWriteExecutor {
WriteSheetHolder
writeSheetHolder
=
writeContext
.
writeSheetHolder
();
Map
<
String
,
ExcelContentProperty
>
fieldNameContentPropertyMap
=
writeContext
.
currentWriteHolder
().
excelWriteHeadProperty
().
getFieldNameContentPropertyMap
();
if
(
null
==
analysisCellList
||
analysisCellList
.
isEmpty
()){
return
;
}
for
(
AnalysisCell
analysisCell
:
analysisCellList
)
{
Cell
cell
=
getOneCell
(
analysisCell
,
fillConfig
);
if
(
analysisCell
.
getOnlyOneVariable
())
{
...
...
src/main/java/com/alibaba/excel/write/metadata/holder/AbstractWriteHolder.java
浏览文件 @
b2102159
...
...
@@ -9,6 +9,7 @@ import java.util.Map;
import
java.util.Set
;
import
java.util.TreeMap
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.poi.ss.usermodel.FillPatternType
;
import
org.apache.poi.ss.usermodel.IndexedColors
;
...
...
@@ -25,7 +26,6 @@ import com.alibaba.excel.metadata.TableStyle;
import
com.alibaba.excel.metadata.property.LoopMergeProperty
;
import
com.alibaba.excel.metadata.property.OnceAbsoluteMergeProperty
;
import
com.alibaba.excel.metadata.property.RowHeightProperty
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.write.handler.CellWriteHandler
;
import
com.alibaba.excel.write.handler.DefaultWriteHandlerLoader
;
import
com.alibaba.excel.write.handler.RowWriteHandler
;
...
...
src/main/java/com/alibaba/excel/write/style/column/LongestMatchColumnWidthStyleStrategy.java
浏览文件 @
b2102159
...
...
@@ -4,12 +4,12 @@ import java.util.HashMap;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.poi.ss.usermodel.Cell
;
import
com.alibaba.excel.enums.CellDataTypeEnum
;
import
com.alibaba.excel.metadata.CellData
;
import
com.alibaba.excel.metadata.Head
;
import
com.alibaba.excel.util.CollectionUtils
;
import
com.alibaba.excel.write.metadata.holder.WriteSheetHolder
;
/**
...
...
src/test/java/com/alibaba/easyexcel/test/demo/fill/FillTest.java
浏览文件 @
b2102159
...
...
@@ -80,24 +80,6 @@ public class FillTest {
excelWriter
.
finish
();
}
/**
* 处理无变量问题
*
* @since 2.1.1
*/
@Test
public
void
noVariableFill
()
{
// 模板注意 用{} 来表示你要用的变量 如果本来就有"{","}" 特殊字符 用"\{","\}"代替
// 填充list 的时候还要注意 模板中{.} 多了个点 表示list
String
templateFileName
=
TestFileUtil
.
getPath
()
+
"demo"
+
File
.
separator
+
"fill"
+
File
.
separator
+
"no_variable.xlsx"
;
// 方案1 一下子全部放到内存里面 并填充
String
fileName
=
TestFileUtil
.
getPath
()
+
"listFill"
+
System
.
currentTimeMillis
()
+
".xlsx"
;
// 这里 会填充到第一个sheet, 然后文件流会自动关闭
EasyExcel
.
write
(
fileName
).
withTemplate
(
templateFileName
).
sheet
().
doFill
(
data
());
}
/**
* 复杂的填充
*
...
...
src/test/resources/demo/fill/no_variable.xlsx
已删除
100644 → 0
浏览文件 @
36924bbe
文件已删除
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录