File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
package itn.com.cmm.util;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import net.sf.jxls.exception.ParsePropertyException;
import net.sf.jxls.transformer.XLSTransformer;
public class ExcelDownloadUtil {
private static final Logger logger = LoggerFactory.getLogger(ExcelDownloadUtil.class);
/**
* 엑셀 다운로드<br>
* - jxl 사용 : 템플릿 xlsx 필요<br>
* @param request
* @param response
* @param mapData : 바인딩 데이터 맵
* @param saveFilename : 빈 값 또는 null일 경우 yyyy-MM-dd_HHmm.xlsx
* @param templateFileName : /excels 디렉토리 내 엑셀 템플릿 파일명
*/
public static void downloadExcel(HttpServletRequest request, HttpServletResponse response, Map<String, Object> mapData, String saveFilename, String templateFileName) {
String sTemplatePath = request.getSession().getServletContext().getRealPath("/excels");
InputStream is = null;
OutputStream os = null;
try {
is = new BufferedInputStream(new FileInputStream(sTemplatePath + "/" + templateFileName));
XLSTransformer transformer = new XLSTransformer();
Workbook resultWorkbook = transformer.transformXLS(is, mapData);
if (StringUtil.isEmpty(saveFilename))
saveFilename = StringUtil.getDateToString("yyyy-MM-dd_HHmm");
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "attachment; filename=\"" + saveFilename + ".xlsx\"");
os = response.getOutputStream();
resultWorkbook.write(os);
os.flush();
os.close();
is.close();
}
catch (ParsePropertyException | IOException | org.apache.poi.openxml4j.exceptions.InvalidFormatException e) {
logger.error("MakeExcel Exception : {}", e.getMessage(), e);
}
finally {
if (os != null)
os = null;
if (is != null)
is = null;
}
}
}