Skip to content

Commit fa59221

Browse files
authored
Merge pull request alibaba#3838 from alibaba/developing
Developing
2 parents 2a494ed + c068790 commit fa59221

File tree

22 files changed

+105
-160
lines changed

22 files changed

+105
-160
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ jobs:
2323
runs-on: ubuntu-latest
2424
strategy:
2525
matrix:
26-
java: [ 8, 11, 17]
26+
java: [ 8, 11, 17, 21]
2727
distribution: [ 'adopt' ]
2828
fail-fast: false
2929
max-parallel: 4

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析
3333
<dependency>
3434
<groupId>com.alibaba</groupId>
3535
<artifactId>easyexcel</artifactId>
36-
<version>3.3.4</version>
36+
<version>4.0.0</version>
3737
</dependency>
3838
```
3939

easyexcel-core/pom.xml

-4
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,6 @@
2828
<groupId>org.apache.poi</groupId>
2929
<artifactId>poi-ooxml</artifactId>
3030
</dependency>
31-
<dependency>
32-
<groupId>org.apache.poi</groupId>
33-
<artifactId>poi-ooxml-schemas</artifactId>
34-
</dependency>
3531
<dependency>
3632
<groupId>org.apache.commons</groupId>
3733
<artifactId>commons-csv</artifactId>

easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java

+6-8
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import com.alibaba.excel.util.StringUtils;
3434

3535
import lombok.extern.slf4j.Slf4j;
36-
import org.apache.commons.collections4.CollectionUtils;
3736
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
3837
import org.apache.poi.openxml4j.opc.OPCPackage;
3938
import org.apache.poi.openxml4j.opc.PackageAccess;
@@ -43,10 +42,9 @@
4342
import org.apache.poi.openxml4j.opc.PackagingURIHelper;
4443
import org.apache.poi.ss.util.CellAddress;
4544
import org.apache.poi.xssf.eventusermodel.XSSFReader;
45+
import org.apache.poi.xssf.model.Comments;
4646
import org.apache.poi.xssf.model.CommentsTable;
47-
import org.apache.poi.xssf.model.SharedStringsTable;
4847
import org.apache.poi.xssf.usermodel.XSSFComment;
49-
import org.apache.poi.xssf.usermodel.XSSFRelation;
5048
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook;
5149
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr;
5250
import org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument;
@@ -123,9 +121,9 @@ public XlsxSaxAnalyser(XlsxReadContext xlsxReadContext, InputStream decryptedStr
123121
sheetList.add(new ReadSheet(index, ite.getSheetName()));
124122
sheetMap.put(index, inputStream);
125123
if (xlsxReadContext.readWorkbookHolder().getExtraReadSet().contains(CellExtraTypeEnum.COMMENT)) {
126-
CommentsTable commentsTable = ite.getSheetComments();
127-
if (null != commentsTable) {
128-
commentsTableMap.put(index, commentsTable);
124+
Comments comments = ite.getSheetComments();
125+
if (comments instanceof CommentsTable) {
126+
commentsTableMap.put(index, (CommentsTable) comments);
129127
}
130128
}
131129
if (xlsxReadContext.readWorkbookHolder().getExtraReadSet().contains(CellExtraTypeEnum.HYPERLINK)) {
@@ -181,7 +179,7 @@ private void analysisUse1904WindowDate(XSSFReader xssfReader, XlsxReadWorkbookHo
181179
}
182180

183181
private void analysisSharedStringsTable(InputStream sharedStringsTableInputStream,
184-
XlsxReadWorkbookHolder xlsxReadWorkbookHolder) throws Exception {
182+
XlsxReadWorkbookHolder xlsxReadWorkbookHolder) {
185183
ContentHandler handler = new SharedStringsTableHandler(xlsxReadWorkbookHolder.getReadCache());
186184
parseXmlSource(sharedStringsTableInputStream, handler);
187185
xlsxReadWorkbookHolder.getReadCache().putFinished();
@@ -201,7 +199,7 @@ private OPCPackage readOpcPackage(XlsxReadWorkbookHolder xlsxReadWorkbookHolder,
201199
}
202200
File readTempFile = FileUtils.createCacheTmpFile();
203201
xlsxReadWorkbookHolder.setTempFile(readTempFile);
204-
File tempFile = new File(readTempFile.getPath(), UUID.randomUUID().toString() + ".xlsx");
202+
File tempFile = new File(readTempFile.getPath(), UUID.randomUUID() + ".xlsx");
205203
if (decryptedStream != null) {
206204
FileUtils.writeToFile(tempFile, decryptedStream, false);
207205
} else {

easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCell.java

-5
Original file line numberDiff line numberDiff line change
@@ -227,11 +227,6 @@ public CellType getCachedFormulaResultType() {
227227
return getCellType();
228228
}
229229

230-
@Override
231-
public CellType getCachedFormulaResultTypeEnum() {
232-
return getCellType();
233-
}
234-
235230
@Override
236231
public String getCellFormula() {
237232
if (formulaData == null) {

easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCellStyle.java

+9-34
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ public void setFont(Font font) {
7676
}
7777

7878
@Override
79-
public short getFontIndex() {
79+
public int getFontIndex() {
8080
return 0;
8181
}
8282

@@ -125,11 +125,6 @@ public HorizontalAlignment getAlignment() {
125125
return null;
126126
}
127127

128-
@Override
129-
public HorizontalAlignment getAlignmentEnum() {
130-
return null;
131-
}
132-
133128
@Override
134129
public void setWrapText(boolean wrapped) {
135130

@@ -150,11 +145,6 @@ public VerticalAlignment getVerticalAlignment() {
150145
return null;
151146
}
152147

153-
@Override
154-
public VerticalAlignment getVerticalAlignmentEnum() {
155-
return null;
156-
}
157-
158148
@Override
159149
public void setRotation(short rotation) {
160150

@@ -185,11 +175,6 @@ public BorderStyle getBorderLeft() {
185175
return null;
186176
}
187177

188-
@Override
189-
public BorderStyle getBorderLeftEnum() {
190-
return null;
191-
}
192-
193178
@Override
194179
public void setBorderRight(BorderStyle border) {
195180

@@ -200,11 +185,6 @@ public BorderStyle getBorderRight() {
200185
return null;
201186
}
202187

203-
@Override
204-
public BorderStyle getBorderRightEnum() {
205-
return null;
206-
}
207-
208188
@Override
209189
public void setBorderTop(BorderStyle border) {
210190

@@ -215,11 +195,6 @@ public BorderStyle getBorderTop() {
215195
return null;
216196
}
217197

218-
@Override
219-
public BorderStyle getBorderTopEnum() {
220-
return null;
221-
}
222-
223198
@Override
224199
public void setBorderBottom(BorderStyle border) {
225200

@@ -230,11 +205,6 @@ public BorderStyle getBorderBottom() {
230205
return null;
231206
}
232207

233-
@Override
234-
public BorderStyle getBorderBottomEnum() {
235-
return null;
236-
}
237-
238208
@Override
239209
public void setLeftBorderColor(short color) {
240210

@@ -286,12 +256,12 @@ public FillPatternType getFillPattern() {
286256
}
287257

288258
@Override
289-
public FillPatternType getFillPatternEnum() {
290-
return null;
259+
public void setFillBackgroundColor(short bg) {
260+
291261
}
292262

293263
@Override
294-
public void setFillBackgroundColor(short bg) {
264+
public void setFillBackgroundColor(Color color) {
295265

296266
}
297267

@@ -310,6 +280,11 @@ public void setFillForegroundColor(short bg) {
310280

311281
}
312282

283+
@Override
284+
public void setFillForegroundColor(Color color) {
285+
286+
}
287+
313288
@Override
314289
public short getFillForegroundColor() {
315290
return 0;

easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvSheet.java

+17
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import org.apache.poi.ss.usermodel.Footer;
4040
import org.apache.poi.ss.usermodel.Header;
4141
import org.apache.poi.ss.usermodel.Hyperlink;
42+
import org.apache.poi.ss.usermodel.PageMargin;
43+
import org.apache.poi.ss.usermodel.PaneType;
4244
import org.apache.poi.ss.usermodel.PrintSetup;
4345
import org.apache.poi.ss.usermodel.Row;
4446
import org.apache.poi.ss.usermodel.Sheet;
@@ -411,11 +413,21 @@ public double getMargin(short margin) {
411413
return 0;
412414
}
413415

416+
@Override
417+
public double getMargin(PageMargin pageMargin) {
418+
return 0;
419+
}
420+
414421
@Override
415422
public void setMargin(short margin, double size) {
416423

417424
}
418425

426+
@Override
427+
public void setMargin(PageMargin pageMargin, double v) {
428+
429+
}
430+
419431
@Override
420432
public boolean getProtect() {
421433
return false;
@@ -481,6 +493,11 @@ public void createSplitPane(int xSplitPos, int ySplitPos, int leftmostColumn, in
481493

482494
}
483495

496+
@Override
497+
public void createSplitPane(int i, int i1, int i2, int i3, PaneType paneType) {
498+
499+
}
500+
484501
@Override
485502
public PaneInformation getPaneInformation() {
486503
return null;

easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvWorkbook.java

+21-30
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@
1212
import lombok.Setter;
1313
import org.apache.commons.compress.utils.Lists;
1414
import org.apache.poi.ss.SpreadsheetVersion;
15+
import org.apache.poi.ss.formula.EvaluationWorkbook;
1516
import org.apache.poi.ss.formula.udf.UDFFinder;
17+
import org.apache.poi.ss.usermodel.CellReferenceType;
1618
import org.apache.poi.ss.usermodel.CellStyle;
1719
import org.apache.poi.ss.usermodel.CreationHelper;
1820
import org.apache.poi.ss.usermodel.DataFormat;
@@ -40,10 +42,9 @@ public class CsvWorkbook implements Workbook {
4042

4143
/**
4244
* true if date uses 1904 windowing, or false if using 1900 date windowing.
43-
*
45+
* <p>
4446
* default is false
4547
*
46-
* @return
4748
*/
4849
private Boolean use1904windowing;
4950

@@ -54,7 +55,7 @@ public class CsvWorkbook implements Workbook {
5455

5556
/**
5657
* Whether to use scientific Format.
57-
*
58+
* <p>
5859
* default is false
5960
*/
6061
private Boolean useScientificFormat;
@@ -200,7 +201,7 @@ public Font findFont(boolean bold, short color, short fontHeight, String name, b
200201
}
201202

202203
@Override
203-
public short getNumberOfFonts() {
204+
public int getNumberOfFonts() {
204205
return 0;
205206
}
206207

@@ -209,11 +210,6 @@ public int getNumberOfFontsAsInt() {
209210
return 0;
210211
}
211212

212-
@Override
213-
public Font getFontAt(short idx) {
214-
return null;
215-
}
216-
217213
@Override
218214
public Font getFontAt(int idx) {
219215
return null;
@@ -272,31 +268,11 @@ public List<? extends Name> getAllNames() {
272268
return null;
273269
}
274270

275-
@Override
276-
public Name getNameAt(int nameIndex) {
277-
return null;
278-
}
279-
280271
@Override
281272
public Name createName() {
282273
return null;
283274
}
284275

285-
@Override
286-
public int getNameIndex(String name) {
287-
return 0;
288-
}
289-
290-
@Override
291-
public void removeName(int index) {
292-
293-
}
294-
295-
@Override
296-
public void removeName(String name) {
297-
298-
}
299-
300276
@Override
301277
public void removeName(Name name) {
302278

@@ -417,10 +393,25 @@ public SpreadsheetVersion getSpreadsheetVersion() {
417393
}
418394

419395
@Override
420-
public int addOlePackage(byte[] oleData, String label, String fileName, String command) throws IOException {
396+
public int addOlePackage(byte[] oleData, String label, String fileName, String command) {
421397
return 0;
422398
}
423399

400+
@Override
401+
public EvaluationWorkbook createEvaluationWorkbook() {
402+
return null;
403+
}
404+
405+
@Override
406+
public CellReferenceType getCellReferenceType() {
407+
return null;
408+
}
409+
410+
@Override
411+
public void setCellReferenceType(CellReferenceType cellReferenceType) {
412+
413+
}
414+
424415
@Override
425416
public Iterator<Sheet> iterator() {
426417
return null;

easyexcel-core/src/main/java/com/alibaba/excel/read/listener/ModelBuildEventListener.java

+1-6
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,6 @@
44
import java.time.LocalDateTime;
55
import java.util.Map;
66

7-
import javax.print.DocFlavor.STRING;
8-
9-
import com.alibaba.excel.constant.EasyExcelConstants;
107
import com.alibaba.excel.context.AnalysisContext;
118
import com.alibaba.excel.enums.CellDataTypeEnum;
129
import com.alibaba.excel.enums.HeadKindEnum;
@@ -17,15 +14,13 @@
1714
import com.alibaba.excel.metadata.data.ReadCellData;
1815
import com.alibaba.excel.read.metadata.holder.ReadSheetHolder;
1916
import com.alibaba.excel.read.metadata.property.ExcelReadHeadProperty;
17+
import com.alibaba.excel.support.cglib.beans.BeanMap;
2018
import com.alibaba.excel.util.BeanMapUtils;
21-
import com.alibaba.excel.util.BooleanUtils;
2219
import com.alibaba.excel.util.ClassUtils;
2320
import com.alibaba.excel.util.ConverterUtils;
2421
import com.alibaba.excel.util.DateUtils;
2522
import com.alibaba.excel.util.MapUtils;
26-
import com.alibaba.excel.util.StringUtils;
2723

28-
import org.springframework.cglib.beans.BeanMap;
2924

3025
/**
3126
* Convert to the object the user needs

easyexcel-core/src/main/java/com/alibaba/excel/util/BeanMapUtils.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.alibaba.excel.util;
22

3-
import org.springframework.cglib.beans.BeanMap;
4-
import org.springframework.cglib.core.DefaultNamingPolicy;
3+
import com.alibaba.excel.support.cglib.beans.BeanMap;
4+
import com.alibaba.excel.support.cglib.core.DefaultNamingPolicy;
55

66
/**
77
* bean utils

0 commit comments

Comments
 (0)