diff --git a/README.md b/README.md
index b544fc28..133e2f2a 100644
--- a/README.md
+++ b/README.md
@@ -67,13 +67,13 @@ easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析
## 也可以加入钉钉&QQ群来解决问题
加入钉钉或QQ群,看完公告可以获得帮助 。
-比较推荐钉钉群,`QQ` 公司不让用,当然QQ群也会有热心网友帮忙解决。
[QQ1群(已满): 662022184](https://jq.qq.com/?_wv=1027&k=1T21jJxh)
[QQ2群(已满): 1097936804](https://jq.qq.com/?_wv=1027&k=j5zEy6Xl)
[QQ3群(已满): 453928496](https://qm.qq.com/cgi-bin/qm/qr?k=e2ULsA5A0GldhV2CXJ8sIbAyu9I6qqs7&jump_from=webapi)
[QQ4群(已满): 496594404](https://qm.qq.com/cgi-bin/qm/qr?k=e_aVG1Q7gi0PJUBkbrUGAgbeO3kUEInK&jump_from=webapi)
[QQ5群(已满): 451925680](https://jq.qq.com/?_wv=1027&k=6VHhvxyf)
[QQ6群: 784741035](https://jq.qq.com/?_wv=1027&k=BbLBIo9P)
+[QQ7群: 667889383](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XdTLw3Z3pr63VT0IkyoY-2t25TG7WxbG&authKey=gQKvTXipsjfUO1aNfL9zdHTfOmkqC6E%2BQ2zDg2jym8h3qXuQ7RtkpeAHeg9I4UhL&noverify=0&group_code=667889383)
[钉钉1群(已满): 21960511](https://qr.dingtalk.com/action/joingroup?code=v1,k1,cchz6k12ci9B08NNqhNRFGXocNVHrZtW0kaOtTKg/Rk=&_dt_no_comment=1&origin=11)
[钉钉2群(已满): 32796397](https://qr.dingtalk.com/action/joingroup?code=v1,k1,jyU9GtEuNU5S0QTyklqYcYJ8qDZtUuTPMM7uPZTS8Hs=&_dt_no_comment=1&origin=11)
[钉钉3群(已满): 33797247](https://qr.dingtalk.com/action/joingroup?code=v1,k1,3UGlEScTGQaHpW2cIRo+gkxJ9EVZ5fz26M6nW3uFP30=&_dt_no_comment=1&origin=11)
@@ -84,7 +84,8 @@ easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析
[钉钉8群(已满): 44752220](https://h5.dingtalk.com/circle/healthCheckin.html?dtaction=os&corpId=dingea96808beee421693fd4ba7542d6e5da&0380092a-fa46=a6a40905-7951&cbdbhh=qwertyuiop)
[钉钉9群(已满): 11045002277](https://h5.dingtalk.com/circle/healthCheckin.html?dtaction=os&corpId=dinge338d2215891c0459c13cd6b2cb108a6&6972d=b92f9&cbdbhh=qwertyuiop)
[钉钉10群(已满): 27360019755](https://qr.dingtalk.com/action/joingroup?code=v1,k1,v25LHn2liWmrWUKlkhIzOTcK7s7onp/sZP8mO5oIYSs=&_dt_no_comment=1&origin=11)
-[钉钉11群:24330026964](https://qr.dingtalk.com/action/joingroup?code=v1,k1,63PjvTncu81oQ3X6XmGEJqnwQHCQxi/jaVlbUStq79o=&_dt_no_comment=1&origin=11)
+[钉钉11群:24330026964](https://qr.dingtalk.com/action/joingroup?code=v1,k1,63PjvTncu81oQ3X6XmGEJqnwQHCQxi/jaVlbUStq79o=&_dt_no_comment=1&origin=11)
+[钉钉12群:27210038956](https://qr.dingtalk.com/action/joingroup?code=v1,k1,3mKi7VTGlYO+IsDX5n7sYYm2Qrlm220kMBPsJFzKRis=&_dt_no_comment=1&origin=11)
# 维护者
diff --git a/easyexcel-test/pom.xml b/easyexcel-test/pom.xml
index 3174f4f0..94256f36 100644
--- a/easyexcel-test/pom.xml
+++ b/easyexcel-test/pom.xml
@@ -60,7 +60,7 @@
ch.qos.logback
logback-classic
- 1.4.7
+ 1.2.12
diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteLargeTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteLargeTest.java
index e1adb770..846ebdb7 100644
--- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteLargeTest.java
+++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteLargeTest.java
@@ -1,17 +1,35 @@
package com.alibaba.easyexcel.test.temp;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import com.alibaba.easyexcel.test.core.large.LargeData;
import com.alibaba.easyexcel.test.util.TestFileUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.metadata.style.WriteFont;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.hssf.eventusermodel.HSSFEventFactory;
+import org.apache.poi.hssf.eventusermodel.HSSFListener;
+import org.apache.poi.hssf.eventusermodel.HSSFRequest;
+import org.apache.poi.hssf.record.BOFRecord;
+import org.apache.poi.hssf.record.BoundSheetRecord;
+import org.apache.poi.hssf.record.Record;
+import org.apache.poi.hssf.record.SSTRecord;
+import org.apache.poi.hssf.usermodel.HSSFCell;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.junit.jupiter.api.Test;
@@ -24,6 +42,7 @@ import org.slf4j.LoggerFactory;
* @author Jiaju Zhuang
**/
+@Slf4j
public class WriteLargeTest {
private static final Logger LOGGER = LoggerFactory.getLogger(WriteLargeTest.class);
@@ -64,6 +83,91 @@ public class WriteLargeTest {
}
+ @Test
+ public void read() throws Exception {
+ log.info("start");
+ String fileName = "/Users/zhuangjiaju/Downloads/1e9e0578a9634abbbbd9b67f338f142a.xls";
+ // 这里 需要指定读用哪个class去读,然后读取第一个sheet 文件流会自动关闭
+ // 这里默认每次会读取100条数据 然后返回过来 直接调用使用数据就行
+ // 具体需要返回多少行可以在`PageReadListener`的构造函数设置
+ EasyExcel.read(fileName, new PageReadListener>>(dataList -> {
+ log.info("SIZEL:{}", dataList.size());
+ })).sheet().doRead();
+
+ log.info("test");
+
+ }
+
+ @Test
+ public void read2() throws Exception {
+ // 使用输入的文件创建一个新的文件输入流
+ //FileInputStream fin = new FileInputStream("/Users/zhuangjiaju/Downloads/1e9e0578a9634abbbbd9b67f338f142a
+ // .xls");
+ // 创建一个新的org.apache.poi.poifs.filesystem.Filesystem
+ POIFSFileSystem poifs = new POIFSFileSystem(
+ new File("/Users/zhuangjiaju/Downloads/1e9e0578a9634abbbbd9b67f338f142a.xls"));
+ // 在InputStream中获取Workbook流
+ InputStream din = poifs.createDocumentInputStream("Workbook");
+ // 构造出HSSFRequest对象
+ HSSFRequest req = new HSSFRequest();
+ // 注册全部的监听器
+ req.addListenerForAllRecords(new EventExample());
+ // 创建事件工厂
+ HSSFEventFactory factory = new HSSFEventFactory();
+ // 根据文档输入流处理我们监听的事件
+ factory.processEvents(req, din);
+ // 关闭文件输入流
+ //fin.close();
+ // 关闭文档输入流
+ din.close();
+ System.out.println("读取结束");
+ }
+
+ @Test
+ public void read3() throws Exception {
+ HSSFWorkbook hwb = new HSSFWorkbook(
+ new FileInputStream("/Users/zhuangjiaju/Downloads/1e9e0578a9634abbbbd9b67f338f142a.xls"));
+ HSSFSheet sheet = hwb.getSheetAt(0);
+ HSSFRow row = null;
+ HSSFCell cell = null;
+ for (int i = sheet.getFirstRowNum(); i <= sheet.getPhysicalNumberOfRows(); i++) {
+ row = sheet.getRow(i);
+ if(row!=null){
+ log.info("r:{}",row.getRowNum());
+
+ }
+ }
+
+ log.info("end");
+ }
+
+ public static class EventExample implements HSSFListener {
+ private SSTRecord sstrec;
+
+ /**
+ * 此方法监听传入记录并根据需要处理它们
+ *
+ * @param record读取时找到的记录
+ */
+ public void processRecord(Record record) {
+ switch (record.getSid()) {
+ //BOFRecord可以表示工作表或工作簿的开头
+ case BOFRecord.sid:
+ BOFRecord bof = (BOFRecord)record;
+ if (bof.getType() == bof.TYPE_WORKBOOK) {
+ System.out.println("监听到工作表");
+ } else if (bof.getType() == bof.TYPE_WORKSHEET) {
+ System.out.println("监听到工作簿");
+ }
+ break;
+ case BoundSheetRecord.sid:
+ BoundSheetRecord bsr = (BoundSheetRecord)record;
+ System.out.println("工作簿名称: " + bsr.getSheetname());
+ break;
+ }
+ }
+ }
+
@Test
public void test2() throws Exception {
// 方法2 如果写到不同的sheet 同一个对象
diff --git a/easyexcel-test/src/test/resources/logback.xml b/easyexcel-test/src/test/resources/logback.xml
index 602049a9..74ebe753 100644
--- a/easyexcel-test/src/test/resources/logback.xml
+++ b/easyexcel-test/src/test/resources/logback.xml
@@ -1,13 +1,15 @@
-
-
-
- ${LOG_PATTERN}
+
+
+
+
+ ${CONSOLE_LOG_PATTERN}
+ utf8
+
-
+