|
|
@@ -17,7 +17,9 @@ import org.springframework.stereotype.Component;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
-import java.io.*;
|
|
|
+import java.io.IOException;
|
|
|
+import java.io.InputStream;
|
|
|
+import java.io.OutputStream;
|
|
|
import java.net.URLEncoder;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
@@ -32,22 +34,21 @@ public class ExcelUtils2 implements ResourceLoaderAware {
|
|
|
/**
|
|
|
* excel文件的导出下载
|
|
|
*
|
|
|
- * @param templateLoacation excel模板文件位置,格式参见org.springframework.core.io.ResourceLoader#getResource方法注释
|
|
|
+ * @param templateLocation excel模板文件位置,格式参见org.springframework.core.io.ResourceLoader#getResource方法注释
|
|
|
* @param data excel模板需要的单项数据
|
|
|
* @param list excel模板需要的列表数据
|
|
|
* @param filename 给浏览器端下载的文件名
|
|
|
* @param resp 响应类
|
|
|
* @see ResourceLoader#getResource(String)
|
|
|
*/
|
|
|
- public static void easyDownload(String templateLoacation, Map<String, Object> data, List<?> list, String filename,
|
|
|
+ public static void easyDownload(String templateLocation, Map<String, Object> data, List<?> list, String filename,
|
|
|
HttpServletResponse resp) {
|
|
|
|
|
|
- Resource template = resourceLoader.getResource(templateLoacation);
|
|
|
+ Resource template = resourceLoader.getResource(templateLocation);
|
|
|
|
|
|
- resp.setHeader("Content-Type", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; charset=utf-8");
|
|
|
+ resp.setHeader("Content-Type", "application/vnd.ms-excel; charset=utf-8");
|
|
|
try {
|
|
|
- logger.info("size:==="+template.getFile().length());
|
|
|
- resp.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));
|
|
|
+ resp.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));
|
|
|
} catch (Exception e) {
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
@@ -56,6 +57,7 @@ public class ExcelUtils2 implements ResourceLoaderAware {
|
|
|
InputStream is = template.getInputStream();
|
|
|
OutputStream outputStream = resp.getOutputStream();
|
|
|
ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(is).build();
|
|
|
+ logger.info("size==="+is.available());
|
|
|
is.close();
|
|
|
WriteSheet writeSheet = EasyExcel.writerSheet().build();
|
|
|
// 直接写入数据
|
|
|
@@ -84,57 +86,6 @@ public class ExcelUtils2 implements ResourceLoaderAware {
|
|
|
logger.info("export time:" + (System.currentTimeMillis() - begin));
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * excel文件的导出下载
|
|
|
- *
|
|
|
- * @param templateLoacation excel模板文件位置,格式参见org.springframework.core.io.ResourceLoader#getResource方法注释
|
|
|
- * @param data excel模板需要的单项数据
|
|
|
- * @param list excel模板需要的列表数据
|
|
|
- * @param filename 给浏览器端下载的文件名
|
|
|
- * @param resp 响应类
|
|
|
- * @see ResourceLoader#getResource(String)
|
|
|
- */
|
|
|
- public static void easyDownloadOrder(String templateLoacation, Map<String, Object> data, List<?> list, String filename,
|
|
|
- HttpServletResponse resp) {
|
|
|
- Resource template = resourceLoader.getResource(templateLoacation);
|
|
|
- resp.setContentType("application/vnd.ms-excel");
|
|
|
- try {
|
|
|
- resp.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(filename, "UTF-8"));
|
|
|
- resp.setCharacterEncoding("utf8");
|
|
|
- resp.setHeader("Pragma", "public");
|
|
|
- resp.setHeader("Cache-Control", "no-store");
|
|
|
- resp.addHeader("Cache-Control", "max-age=0");
|
|
|
- } catch (UnsupportedEncodingException e) {
|
|
|
- throw new RuntimeException(e);
|
|
|
- }
|
|
|
- long begin = System.currentTimeMillis();
|
|
|
- try {
|
|
|
- InputStream is = template.getInputStream();
|
|
|
-
|
|
|
- OutputStream outputStream = resp.getOutputStream();
|
|
|
- ExcelWriter excelWriter = EasyExcel.write(outputStream).withTemplate(is).build();
|
|
|
- is.close();
|
|
|
- WriteSheet writeSheet = EasyExcel.writerSheet().build();
|
|
|
- // 直接写入数据
|
|
|
- excelWriter.fill(list, writeSheet);
|
|
|
- if (!data.isEmpty()) {
|
|
|
- excelWriter.fill(data, writeSheet);
|
|
|
- }
|
|
|
- excelWriter.finish();
|
|
|
- outputStream.flush();
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- throw new RuntimeException(e);
|
|
|
- } finally {
|
|
|
- try {
|
|
|
- resp.getOutputStream().close();
|
|
|
- } catch (IOException e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- }
|
|
|
- logger.info("export time:" + (System.currentTimeMillis() - begin));
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 实体模型导出
|
|
|
* @param response 响应类
|