public class xlsxDownload extedns AbstractView {
@Resource(name="excelDownloadService")
private ExcelDownloadSercie excelDownloadService;
@Override
protected void renderMergedOutputModel(Map<string, object=""> modelMap, HttpServletRequest request, HttpServletResponse response) throws Exception{
XSSFWorkbook workBook = new XSSFWorkbook();
String excelName = modelMap.get("excelName").toString();
XSSFSheet workSheet = null;
XSSFRow row = null;
XSSFCEll cell = null;
CellStyle headStyle = workBook.createCellStyle();
headStyle.setFillForegroundColor(HSSFColor.YELLOW.index);
headStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
headStyle.setAlignment(CellStyle.ALIGN_CENTER);
headStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
workSheet = workBook.createSheet();
workBook.setCheetName(0, modelMap.get("sheetName1").toString());
row = workSheet.createRow(0);
if(modelMap.get("excelColumn") != null){
String[] excelColumn = (String[])modelMap.get("excelColumn"); // 엑셀항목이 배열에 담겨있다
if(excelColumn.length > = 0){
for(int i=0;i<excelcolumn.length-1;i++){
cell= row.createCell(i+1);
cell.setcellstyle(headstyle);
cell.setcellvalue(excelcolumn[i+1].tostring());
}
XSSFrow rows = null;
String temp="";
if(list="" !="null" &&="" list.size()=""> 0){
int reCell = 0; //출력해야할 cell
int reNum = 0;
int rowStart = 1; 뿌려줄 row
String reStr = ""; //나머지 출력할 문자
for(int i=0;i<list.size();i++){
int cnt = 0;
if(!reStr.equals("")){ // 한셀에 32767자가 넘을시 실행
rows=workSheet.createRow(rowStart);
cell=rows.createCell(cnt);
cell.setcellvalue(renum+1);
if(reStr.length() > 32767){
cell.setCellValue(reStr.substring(0,32767));
reStr = reStr.substring(32767, reStr.length());
i = reNum;
}else{
cell.setCellValue(reStr);
reStr = "";
i = reNum;
}
}else{
rows = workSheet.createRow(rowStart);
EgovMap em = (EgovMap)list.get(i);
for(Iterator iterator = em.keySet().iterator(); iterator.hasNext();){
String keyName = (String)iterator.next();
if(cnt == 0){
cell = rows.createCell(cnt);
cell.setCellValue(i+1);
cnt++;
}
cell = rows.crateCell(cnt);
if(em.get(keyName) != null){
temp = em.get(keyName).toString();
while(temp.indexOf("<") >= 0 && temp.indexOf("<") < temp.indexOf(">")){
temp = temp.replace(temp.substring(temp.indexOf("<"),temp.indexOf(">"+1),"");
}
temp = temp.replaceAll("\"","");
temp = temp.replaceAll(" ","");
if(temp.length() > 32767){
cell.setCellValue(temp.substring(0,32767));
reStr = temp.substring(32767,temp.length());
reCell = cnt;
reNum = i;
}else{
cell.setCellValue(temp);
}
}
cnt++;
}
}
rowStart++;
}
}
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
String today = sdf.format(date);
response.setContentType("application/Msexcel");
response.setHeader("Content-Disposition", "ATTachment; Filename="+URLEncoder.encode(excelName,"UTF-8")+"_"+today+".xlsx");
workBook.write(response.getOutputStream());
workBook.close();
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | public class xlsxDownload extedns AbstractView { @Resource(name="excelDownloadService") private ExcelDownloadSercie excelDownloadService; @Override protected void renderMergedOutputModel(Map<string, object=""> modelMap, HttpServletRequest request, HttpServletResponse response) throws Exception{ XSSFWorkbook workBook = new XSSFWorkbook(); String excelName = modelMap.get("excelName").toString(); XSSFSheet workSheet = null; XSSFRow row = null; XSSFCEll cell = null; CellStyle headStyle = workBook.createCellStyle(); headStyle.setFillForegroundColor(HSSFColor.YELLOW.index); headStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); headStyle.setAlignment(CellStyle.ALIGN_CENTER); headStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER); workSheet = workBook.createSheet(); workBook.setCheetName(0, modelMap.get("sheetName1").toString()); row = workSheet.createRow(0); if(modelMap.get("excelColumn") != null){ String[] excelColumn = (String[])modelMap.get("excelColumn"); // 엑셀항목이 배열에 담겨있다 if(excelColumn.length > = 0){ for(int i=0;i<excelcolumn.length-1;i++){ cell= row.createCell(i+1); cell.setcellstyle(headstyle); cell.setcellvalue(excelcolumn[i+1].tostring()); } XSSFrow rows = null; String temp=""; if(list="" !="null" &&="" list.size()=""> 0){ int reCell = 0; //출력해야할 cell int reNum = 0; int rowStart = 1; 뿌려줄 row String reStr = ""; //나머지 출력할 문자 for(int i=0;i<list.size();i++){ int cnt = 0; if(!reStr.equals("")){ // 한셀에 32767자가 넘을시 실행 rows=workSheet.createRow(rowStart); cell=rows.createCell(cnt); cell.setcellvalue(renum+1); if(reStr.length() > 32767){ cell.setCellValue(reStr.substring(0,32767)); reStr = reStr.substring(32767, reStr.length()); i = reNum; }else{ cell.setCellValue(reStr); reStr = ""; i = reNum; } }else{ rows = workSheet.createRow(rowStart); EgovMap em = (EgovMap)list.get(i); for(Iterator iterator = em.keySet().iterator(); iterator.hasNext();){ String keyName = (String)iterator.next(); if(cnt == 0){ cell = rows.createCell(cnt); cell.setCellValue(i+1); cnt++; } cell = rows.crateCell(cnt); if(em.get(keyName) != null){ temp = em.get(keyName).toString(); while(temp.indexOf("<") >= 0 && temp.indexOf("<") < temp.indexOf(">")){ temp = temp.replace(temp.substring(temp.indexOf("<"),temp.indexOf(">"+1),""); } temp = temp.replaceAll("\"",""); temp = temp.replaceAll(" ",""); if(temp.length() > 32767){ cell.setCellValue(temp.substring(0,32767)); reStr = temp.substring(32767,temp.length()); reCell = cnt; reNum = i; }else{ cell.setCellValue(temp); } } cnt++; } } rowStart++; } } Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); String today = sdf.format(date); response.setContentType("application/Msexcel"); response.setHeader("Content-Disposition", "ATTachment; Filename="+URLEncoder.encode(excelName,"UTF-8")+"_"+today+".xlsx"); workBook.write(response.getOutputStream()); workBook.close(); } } | cs |
'Start' 카테고리의 다른 글
안드로이드 하이브리드앱 웹뷰 swipe 사용중 오류 해결 (0) | 2023.01.11 |
---|---|
java 페이징 (0) | 2018.12.24 |
[리눅스 서버]Apache web, Tomcat was (0) | 2018.12.12 |
openApi xml, json 제공, 생성시 특수문자제거 정규식 (0) | 2018.12.12 |
Java 정규표현식 사용법 개인정보처리 (1) | 2018.11.28 |