diff --git a/README.md b/README.md
index 0cf42e02..17ce6190 100644
--- a/README.md
+++ b/README.md
@@ -15,8 +15,8 @@
# JAVA解析Excel工具easyexcel
Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。easyexcel重写了poi对07版Excel的解析,能够原本一个3M的excel用POI sax依然需要100M左右内存降低到几M,并且再大的excel不会出现内存溢出,03版依赖POI的sax模式。在上层做了模型转换的封装,让使用者更加简单方便
## 相关文档
-* [关于软件](/abouteasyexcel.md)
* [快速使用](/quickstart.md)
+* [关于软件](/abouteasyexcel.md)
* [常见问题](/problem.md)
* [更新记事](/update.md)
* [English-README](/easyexcel_en.md)
@@ -74,7 +74,7 @@ DEMO代码地址:[https://github.com/alibaba/easyexcel/blob/master/src/test/ja
* 文件下载
*
1. 创建excel对应的实体对象 参照{@link DownloadData}
* 2. 设置返回的 参数
- * 3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭异常问题不大
+ * 3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大
*/
@GetMapping("download")
public void download(HttpServletResponse response) throws IOException {
diff --git a/img/readme/quickstart/read/demo.png b/img/readme/quickstart/read/demo.png
new file mode 100644
index 00000000..6ac47cea
Binary files /dev/null and b/img/readme/quickstart/read/demo.png differ
diff --git a/quickstart.md b/quickstart.md
index 296e2766..b5976698 100644
--- a/quickstart.md
+++ b/quickstart.md
@@ -1,4 +1,10 @@
# easyexcel核心功能
+## 目录
+### 读
+DEMO代码地址:[https://github.com/alibaba/easyexcel/blob/master/src/test/java/com/alibaba/easyexcel/demo/read/ReadTest.java](/src/test/java/com/alibaba/easyexcel/test/demo/read/ReadTest.java)
+* [最简单的读](#simpleRead)
+
+### 写
## *读任意大小的03、07版Excel不会OO]
## *读Excel自动通过注解,把结果映射为java模型
@@ -12,343 +18,304 @@
## *写Excel时一个sheet可以写多个Table
## *写Excel时候自定义是否需要写表头
-## 读Excel
-
-使用easyexcel解析03、07版本的Excel只是ExcelTypeEnum不同,其他使用完全相同,使用者无需知道底层解析的差异。
-
-### 无java模型直接把excel解析的每行结果以List<String>返回 在ExcelListener获取解析结果
-读excel代码示例如下:
+## 读excel样例
+### 最简单的读
+#### excel示例
+![img](img/readme/quickstart/read/demo.png)
+#### 对象
+```java
+@Data
+public class DemoData {
+ private String string;
+ private Date date;
+ private Double doubleData;
+}
```
- @Test
- public void testExcel2003NoModel() {
- InputStream inputStream = getInputStream("loan1.xls");
- try {
- // 解析每行结果在listener中处理
- ExcelListener listener = new ExcelListener();
-
- ExcelReader excelReader = new ExcelReader(inputStream, ExcelTypeEnum.XLS, null, listener);
- excelReader.read();
- } catch (Exception e) {
-
- } finally {
- try {
- inputStream.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
+#### 监听器
+```java
+public class DemoDataListener extends AnalysisEventListener {
+ private static final Logger LOGGER = LoggerFactory.getLogger(DemoDataListener.class);
+ /**
+ * 每隔5条存储数据库,实际使用中可以3000条,然后清理list ,方便内存回收
+ */
+ private static final int BATCH_COUNT = 5;
+ List list = new ArrayList();
+
+ @Override
+ public void invoke(DemoData data, AnalysisContext context) {
+ LOGGER.info("解析到一条数据:{}", JSON.toJSONString(data));
+ list.add(data);
+ if (list.size() >= BATCH_COUNT) {
+ saveData();
+ list.clear();
}
}
-```
-ExcelListener示例代码如下:
-```
- /* 解析监听器,
- * 每解析一行会回调invoke()方法。
- * 整个excel解析结束会执行doAfterAllAnalysed()方法
- *
- * 下面只是我写的一个样例而已,可以根据自己的逻辑修改该类。
- * @author jipengfei
- * @date 2017/03/14
- */
-public class ExcelListener extends AnalysisEventListener {
- //自定义用于暂时存储data。
- //可以通过实例获取该值
- private List