Skip to content
This repository was archived by the owner on Apr 11, 2025. It is now read-only.

Commit 55f334f

Browse files
committed
⚡ improving performance
1 parent 667d90a commit 55f334f

File tree

3 files changed

+25
-12
lines changed

3 files changed

+25
-12
lines changed

src/main/java/io/github/biezhi/excel/plus/writer/ExcelWriter.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
package io.github.biezhi.excel.plus.writer;
22

33
import io.github.biezhi.excel.plus.Constant;
4+
import io.github.biezhi.excel.plus.enums.ExcelType;
45
import io.github.biezhi.excel.plus.exception.ExcelException;
56
import io.github.biezhi.excel.plus.utils.ExcelUtils;
67
import io.github.biezhi.excel.plus.utils.Pair;
78

9+
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
810
import org.apache.poi.ss.usermodel.Cell;
911
import org.apache.poi.ss.usermodel.CellStyle;
1012
import org.apache.poi.ss.usermodel.Row;
1113
import org.apache.poi.ss.usermodel.Sheet;
1214
import org.apache.poi.ss.usermodel.Workbook;
1315
import org.apache.poi.ss.usermodel.WorkbookFactory;
1416
import org.apache.poi.ss.util.CellRangeAddress;
17+
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
1518

1619
import java.io.InputStream;
1720
import java.io.OutputStream;

src/test/java/io/github/biezhi/excel/plus/Examples.java

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,11 @@
1111
import org.apache.poi.ss.usermodel.FillPatternType;
1212
import org.apache.poi.ss.usermodel.Font;
1313
import org.apache.poi.ss.usermodel.HorizontalAlignment;
14+
import org.junit.Assert;
1415
import org.junit.Test;
1516

1617
import java.io.File;
18+
import java.io.InputStream;
1719
import java.math.BigDecimal;
1820
import java.util.ArrayList;
1921
import java.util.List;
@@ -28,23 +30,31 @@ public class Examples {
2830

2931
private ExcelPlus excelPlus = new ExcelPlus();
3032

33+
private InputStream getCardStream() {
34+
return Examples.class.getResourceAsStream("/卡密列表.xlsx");
35+
}
36+
3137
@Test
3238
public void testReadExcel() throws ExcelException {
33-
List<CardSecret> cardSecrets = excelPlus.read(new File("卡密列表.xls"), CardSecret.class).asList();
34-
System.out.println(cardSecrets);
39+
40+
List<CardSecret> cardSecrets = excelPlus.read(getCardStream(), CardSecret.class).asList();
41+
Assert.assertNotNull(cardSecrets);
42+
Assert.assertEquals(4, cardSecrets.size());
3543
}
3644

3745
@Test
3846
public void testReadFilter() throws ExcelException {
39-
List<CardSecret> cardSecrets = excelPlus.read(new File("卡密列表.xls"), CardSecret.class)
40-
.filter(cardSecret -> cardSecret.getAmount().doubleValue() > 10)
47+
List<CardSecret> cardSecrets = excelPlus.read(getCardStream(), CardSecret.class)
48+
.filter(cardSecret -> cardSecret.getAmount().doubleValue() > 50)
4149
.asList();
42-
System.out.println(cardSecrets);
50+
51+
Assert.assertNotNull(cardSecrets);
52+
Assert.assertEquals(3, cardSecrets.size());
4353
}
4454

4555
@Test
4656
public void testReadValid() throws ExcelException {
47-
ExcelResult<CardSecret> excelResult = excelPlus.read(new File("卡密列表.xls"), CardSecret.class)
57+
ExcelResult<CardSecret> excelResult = excelPlus.read(getCardStream(), CardSecret.class)
4858
.startRow(2)
4959
.valid(cardSecret -> {
5060
BigDecimal amount = cardSecret.getAmount();
@@ -58,16 +68,16 @@ public void testReadValid() throws ExcelException {
5868
if (!excelResult.isValid()) {
5969
excelResult.errors().forEach(System.out::println);
6070
} else {
61-
System.out.println(excelResult.rows().size());
71+
Assert.assertEquals(3, excelResult.rows().size());
6272
}
6373
}
6474

6575
@Test
6676
public void testReadCounter() throws ExcelException {
67-
ExcelResult<CardSecret> excelResult = excelPlus.read(new File("卡密列表.xls"), CardSecret.class)
77+
ExcelResult<CardSecret> excelResult = excelPlus.read(getCardStream(), CardSecret.class)
6878
.startRow(2)
6979
.valid(cardSecret -> {
70-
if(cardSecret.getCardType().equals(1)){
80+
if (cardSecret.getCardType().equals(1)) {
7181
return ValidRow.ok().addCounter("CARD_TYPE_1");
7282
}
7383
return ValidRow.ok();
@@ -77,14 +87,14 @@ public void testReadCounter() throws ExcelException {
7787
if (!excelResult.isValid()) {
7888
excelResult.errors().forEach(System.out::println);
7989
} else {
80-
System.out.println(excelResult.rows().size());
90+
Assert.assertEquals(3, excelResult.rows().size());
8191
}
8292
}
8393

8494
@Test
8595
public void testExport() throws ExcelException {
8696
List<CardSecret> cardSecrets = this.buildCardSecrets();
87-
excelPlus.export(cardSecrets).writeAsFile(new File("卡密列表.xls"));
97+
excelPlus.export(cardSecrets).writeAsFile(new File("export.xls"));
8898
}
8999

90100
@Test
@@ -128,7 +138,7 @@ public void testExportByTpl() throws ExcelException {
128138
).writeAsFile(new File("template_rows.xls"));
129139
}
130140

131-
@Test
141+
// @Test
132142
public void testDownload() throws ExcelException {
133143
List<CardSecret> cardSecrets = this.buildCardSecrets();
134144
excelPlus.export(cardSecrets).writeAsResponse(ResponseWrapper.create(null, "xxx表格.xls"));

src/test/resources/卡密列表.xlsx

6.22 KB
Binary file not shown.

0 commit comments

Comments
 (0)