easyExcel을 사용하여 데이터 내보내기
3444 단어 excel 내보내기easyExcel
com.alibaba
easyexcel
1.1.2-beta5
2. 실체 클래스는 계승해야 한다. index는 헤더 순서인public class Mine extends BaseRowModel {
/**
*
*/
@ExcelProperty(value = " ", index = 1)
private String type;
/**
*
*/
@ExcelProperty(value = " ", index = 2)
private String name;
}
2. controller 입구 클래스
/*** 데이터 내보내기*@param search*@param response*/
@RequestMapping(value = "/exportDateToExcel")
public void exportDateToExcel(Mine search, HttpServletResponse response) {
//
List list = service.findAll(search, pageable).getContent();
try {
Map> map = new HashMap<>();
map.put(" ", list);
ExcelUtil.createExcelStreamMutilByEaysExcel(response, map, ExcelTypeEnum.XLSX, " ("+ExcelUtil.fileName()+").xlsx");
} catch (Exception e) {
e.printStackTrace();
}
}
2.excel 도구 클래스 public class ExcelUtil
/**
* @Author jian
* @Description excel sheet
* @Param OutputStream
* Map sheetName sheet
* ExcelTypeEnum excel ExcelTypeEnum.xls ExcelTypeEnum.xlsx
*/
public static void createExcelStreamMutilByEaysExcel(HttpServletResponse response, Map> SheetNameAndDateList, ExcelTypeEnum type, String fileName) throws UnsupportedEncodingException {
try {
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.replaceAll(" ", "").getBytes("utf-8"), "iso8859-1"));
ServletOutputStream out = response.getOutputStream();
ExcelWriter writer = new ExcelWriter(out, type, true);
setSheet(SheetNameAndDateList, writer);
writer.finish();
out.flush();
System.out.println(" ");
} catch (IOException e) {
e.printStackTrace();
}
}
/*** 현재 시간으로 파일 이름 생성 * @return */
public static String fileName() {
String fileName = "";
try {
fileName = new String(
(new SimpleDateFormat("yyyy-MM-dd").format(new Date())).getBytes(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return fileName;
}
/**
* @Author jian
* @Description //setSheet
*/
private static void setSheet(Map> SheetNameAndDateList, ExcelWriter writer) {
int sheetNum = 1;
for (Map.Entry> stringListEntry : SheetNameAndDateList.entrySet()) {
Sheet sheet = new Sheet(sheetNum, 0, stringListEntry.getValue().get(0).getClass());
sheet.setSheetName(stringListEntry.getKey());
writer.write(stringListEntry.getValue(), sheet);
sheetNum++;
}
}
OK! 완성했어!