|
@@ -385,7 +385,7 @@ public class ExcelUtils {
|
|
exportTemplate(response, fileName, fileName, clazz, isContainExample);
|
|
exportTemplate(response, fileName, fileName, clazz, isContainExample);
|
|
}
|
|
}
|
|
|
|
|
|
- public static <T> void exportTemplate(HttpServletResponse response, String fileName, String sheetName,
|
|
|
|
|
|
+ public static <T> String exportTemplate(HttpServletResponse response, String fileName, String sheetName,
|
|
Class<T> clazz, boolean isContainExample) {
|
|
Class<T> clazz, boolean isContainExample) {
|
|
// 获取表头字段
|
|
// 获取表头字段
|
|
List<ExcelClassField> headFieldList = getExcelClassFieldList(clazz);
|
|
List<ExcelClassField> headFieldList = getExcelClassFieldList(clazz);
|
|
@@ -408,7 +408,7 @@ public class ExcelUtils {
|
|
sheetDataList.add(exampleList);
|
|
sheetDataList.add(exampleList);
|
|
}
|
|
}
|
|
// 导出数据
|
|
// 导出数据
|
|
- export(response, fileName, sheetName, sheetDataList, selectMap);
|
|
|
|
|
|
+ return export(response, fileName, sheetName, sheetDataList, selectMap);
|
|
}
|
|
}
|
|
|
|
|
|
private static <T> List<ExcelClassField> getExcelClassFieldList(Class<T> clazz) {
|
|
private static <T> List<ExcelClassField> getExcelClassFieldList(Class<T> clazz) {
|
|
@@ -511,15 +511,15 @@ public class ExcelUtils {
|
|
* @param file 本地文件对象
|
|
* @param file 本地文件对象
|
|
* @param sheetData 导出数据
|
|
* @param sheetData 导出数据
|
|
*/
|
|
*/
|
|
- public static void exportFile(File file, List<List<Object>> sheetData) {
|
|
|
|
|
|
+ public static String exportFile(File file, List<List<Object>> sheetData) {
|
|
if (file == null) {
|
|
if (file == null) {
|
|
System.out.println("文件创建失败");
|
|
System.out.println("文件创建失败");
|
|
- return;
|
|
|
|
|
|
+ return null;
|
|
}
|
|
}
|
|
if (sheetData == null) {
|
|
if (sheetData == null) {
|
|
sheetData = new ArrayList<>();
|
|
sheetData = new ArrayList<>();
|
|
}
|
|
}
|
|
- export(null, file, file.getName(), file.getName(), sheetData, null);
|
|
|
|
|
|
+ return export(null, file, file.getName(), file.getName(), sheetData, null);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -635,26 +635,26 @@ public class ExcelUtils {
|
|
return map;
|
|
return map;
|
|
}
|
|
}
|
|
|
|
|
|
- public static void exportEmpty(HttpServletResponse response, String fileName) {
|
|
|
|
|
|
+ public static String exportEmpty(HttpServletResponse response, String fileName) {
|
|
List<List<Object>> sheetDataList = new ArrayList<>();
|
|
List<List<Object>> sheetDataList = new ArrayList<>();
|
|
List<Object> headList = new ArrayList<>();
|
|
List<Object> headList = new ArrayList<>();
|
|
headList.add("导出无数据");
|
|
headList.add("导出无数据");
|
|
sheetDataList.add(headList);
|
|
sheetDataList.add(headList);
|
|
- export(response, fileName, sheetDataList);
|
|
|
|
|
|
+ return export(response, fileName, sheetDataList);
|
|
}
|
|
}
|
|
|
|
|
|
- public static void export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList) {
|
|
|
|
- export(response, fileName, fileName, sheetDataList, null);
|
|
|
|
|
|
+ public static String export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList) {
|
|
|
|
+ return export(response, fileName, fileName, sheetDataList, null);
|
|
}
|
|
}
|
|
|
|
|
|
- public static void export(HttpServletResponse response, String fileName, String sheetName,
|
|
|
|
|
|
+ public String export(HttpServletResponse response, String fileName, String sheetName,
|
|
List<List<Object>> sheetDataList) {
|
|
List<List<Object>> sheetDataList) {
|
|
- export(response, fileName, sheetName, sheetDataList, null);
|
|
|
|
|
|
+ return export(response, fileName, sheetName, sheetDataList, null);
|
|
}
|
|
}
|
|
|
|
|
|
- public static void export(HttpServletResponse response, String fileName, String sheetName,
|
|
|
|
- List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
|
|
|
|
- export(response, null, fileName, sheetName, sheetDataList, selectMap);
|
|
|
|
|
|
+ public static String export(HttpServletResponse response, String fileName, String sheetName,
|
|
|
|
+ List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
|
|
|
|
+ return export(response, null, fileName, sheetName, sheetDataList, selectMap);
|
|
}
|
|
}
|
|
|
|
|
|
public static <T, K> void export(HttpServletResponse response, String fileName, List<T> list, Class<K> template) {
|
|
public static <T, K> void export(HttpServletResponse response, String fileName, List<T> list, Class<K> template) {
|
|
@@ -675,12 +675,12 @@ public class ExcelUtils {
|
|
export(response, fileName, sheetDataList);
|
|
export(response, fileName, sheetDataList);
|
|
}
|
|
}
|
|
|
|
|
|
- public static void export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
|
|
|
|
- export(response, fileName, fileName, sheetDataList, selectMap);
|
|
|
|
|
|
+ public String export(HttpServletResponse response, String fileName, List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
|
|
|
|
+ return export(response, fileName, fileName, sheetDataList, selectMap);
|
|
}
|
|
}
|
|
|
|
|
|
- private static void export(HttpServletResponse response, File file, String fileName, String sheetName,
|
|
|
|
- List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
|
|
|
|
|
|
+ private static String export(HttpServletResponse response, File file, String fileName, String sheetName,
|
|
|
|
+ List<List<Object>> sheetDataList, Map<Integer, List<String>> selectMap) {
|
|
// 整个 Excel 表格 book 对象
|
|
// 整个 Excel 表格 book 对象
|
|
SXSSFWorkbook book = new SXSSFWorkbook();
|
|
SXSSFWorkbook book = new SXSSFWorkbook();
|
|
// 每个 Sheet 页
|
|
// 每个 Sheet 页
|
|
@@ -742,17 +742,45 @@ public class ExcelUtils {
|
|
// 本地导出
|
|
// 本地导出
|
|
FileOutputStream fos;
|
|
FileOutputStream fos;
|
|
try {
|
|
try {
|
|
- fos = new FileOutputStream(file);
|
|
|
|
|
|
+ fileName = encodingFilename(fileName);
|
|
|
|
+ fos = new FileOutputStream(getAbsoluteFile(fileName));
|
|
ByteArrayOutputStream ops = new ByteArrayOutputStream();
|
|
ByteArrayOutputStream ops = new ByteArrayOutputStream();
|
|
book.write(ops);
|
|
book.write(ops);
|
|
fos.write(ops.toByteArray());
|
|
fos.write(ops.toByteArray());
|
|
fos.close();
|
|
fos.close();
|
|
|
|
+ return fileName;
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ return fileName;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 编码文件名
|
|
|
|
+ */
|
|
|
|
+ public static String encodingFilename(String filename)
|
|
|
|
+ {
|
|
|
|
+ filename = UUID.randomUUID().toString() + "_" + filename + ".xlsx";
|
|
|
|
+ return filename;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 获取下载路径
|
|
|
|
+ *
|
|
|
|
+ * @param filename 文件名称
|
|
|
|
+ */
|
|
|
|
+ public static String getAbsoluteFile(String filename)
|
|
|
|
+ {
|
|
|
|
+ String downloadPath = "/templates/"+ filename;
|
|
|
|
+ File desc = new File(downloadPath);
|
|
|
|
+ if (!desc.getParentFile().exists())
|
|
|
|
+ {
|
|
|
|
+ desc.getParentFile().mkdirs();
|
|
|
|
+ }
|
|
|
|
+ return downloadPath;
|
|
|
|
+ }
|
|
/**
|
|
/**
|
|
* 合并当前Sheet页的单元格
|
|
* 合并当前Sheet页的单元格
|
|
*
|
|
*
|