From 1bfb8da93f12ed1def755f438499eb42ea207360 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Wed, 11 Sep 2019 18:48:38 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9demo=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- quickstart.md | 31 ++++++++++++------- .../easyexcel/test/demo/web/WebTest.java | 1 + .../easyexcel/test/demo/write/WriteTest.java | 10 +++--- 3 files changed, 27 insertions(+), 15 deletions(-) diff --git a/quickstart.md b/quickstart.md index f9ca1438..fccc2a84 100644 --- a/quickstart.md +++ b/quickstart.md @@ -575,9 +575,12 @@ public class ComplexHeadData { ```java /** * 重复多次写入 - *

1. 创建excel对应的实体对象 参照{@link ComplexHeadData} - *

2. 使用{@link ExcelProperty}注解指定复杂的头 - *

3. 直接调用二次写入即可 + *

+ * 1. 创建excel对应的实体对象 参照{@link ComplexHeadData} + *

+ * 2. 使用{@link ExcelProperty}注解指定复杂的头 + *

+ * 3. 直接调用二次写入即可 */ @Test public void repeatedWrite() { @@ -586,10 +589,12 @@ public class ComplexHeadData { ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build(); // 这里注意 如果同一个sheet只要创建一次 WriteSheet writeSheet = EasyExcel.writerSheet("模板").build(); - // 第一次写入会创建头 - excelWriter.write(data(), writeSheet); - // 第二次写入会在上一次写入的最后一行后面写入 - excelWriter.write(data(), writeSheet); + // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来 + for (int i = 0; i < 5; i++) { + // 分页去数据库查询数据 这里可以去数据库查询每一页的数据 + List data = data(); + excelWriter.write(data, writeSheet); + } /// 千万别忘记finish 会帮忙关闭流 excelWriter.finish(); } @@ -1041,14 +1046,18 @@ DEMO代码地址:[https://github.com/alibaba/easyexcel/blob/master/src/test/ja 参照:[对象](#simpleWriteObject) 就是名称变了下 ##### 代码 ```java - /** + /** * 文件下载 - *

1. 创建excel对应的实体对象 参照{@link DownloadData} - *

2. 设置返回的 参数 - *

3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大 + *

+ * 1. 创建excel对应的实体对象 参照{@link DownloadData} + *

+ * 2. 设置返回的 参数 + *

+ * 3. 直接写,这里注意,finish的时候会自动关闭OutputStream,当然你外面再关闭流问题不大 */ @GetMapping("download") public void download(HttpServletResponse response) throws IOException { + // 这里注意 有同学反应下载的文件名不对。这个时候 请别使用swagger 他会影像 response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); response.setHeader("Content-disposition", "attachment;filename=demo.xlsx"); diff --git a/src/test/java/com/alibaba/easyexcel/test/demo/web/WebTest.java b/src/test/java/com/alibaba/easyexcel/test/demo/web/WebTest.java index d96f89bc..9d5e9f08 100644 --- a/src/test/java/com/alibaba/easyexcel/test/demo/web/WebTest.java +++ b/src/test/java/com/alibaba/easyexcel/test/demo/web/WebTest.java @@ -33,6 +33,7 @@ public class WebTest { */ @GetMapping("download") public void download(HttpServletResponse response) throws IOException { + // 这里注意 有同学反应下载的文件名不对。这个时候 请别使用swagger 他会影像 response.setContentType("application/vnd.ms-excel"); response.setCharacterEncoding("utf-8"); response.setHeader("Content-disposition", "attachment;filename=demo.xlsx"); diff --git a/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java b/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java index 094d1c10..66367692 100644 --- a/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java +++ b/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java @@ -110,10 +110,12 @@ public class WriteTest { ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build(); // 这里注意 如果同一个sheet只要创建一次 WriteSheet writeSheet = EasyExcel.writerSheet("模板").build(); - // 第一次写入会创建头 - excelWriter.write(data(), writeSheet); - // 第二次写入会在上一次写入的最后一行后面写入 - excelWriter.write(data(), writeSheet); + // 去调用写入,这里我调用了五次,实际使用时根据数据库分页的总的页数来 + for (int i = 0; i < 5; i++) { + // 分页去数据库查询数据 这里可以去数据库查询每一页的数据 + List data = data(); + excelWriter.write(data, writeSheet); + } /// 千万别忘记finish 会帮忙关闭流 excelWriter.finish(); }