import org.apache.poi.ss.usermodel.Workbook;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.StringUtils;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
/**
-
excel download util.
*/
public class ExcelDownloadUtil {/**
- logger
*/
private static final Logger logger = LoggerFactory.getLogger(ExcelDownloadUtil.class);
/**
- download
- @param filePrefix
- @param workbook
- @param res
*/
public static void download(String filePrefix, Workbook workbook, HttpServletRequest req, HttpServletResponse res){
try {
String fileName = null;
String now = DateUtil.now();
if(StringUtils.isEmpty(filePrefix)) {
fileName = now + “.xlsx”;
}else {
fileName = filePrefix + “_” + now + “.xlsx”;
}
//let explore how to deal with the content.
res.setHeader(“content-Type”,“application/x-excel”);
//set the download name.
String userAgent = req.getHeader(“User-Agent”);
if (userAgent.contains(“MSIE”) || userAgent.contains(“Trident”)) {
//IE浏览器处
fileName = java.net.URLEncoder.encode(fileName, “UTF-8”);
} else {
// 非IE浏览器的处理
fileName = new String(fileName.getBytes(“UTF-8”), “ISO-8859-1”);
}
res.setHeader(“Content-disposition”,“attachment;filename=”+ fileName);
}catch (UnsupportedEncodingException e) {
logger.error("", e);
}
try(Workbook wb = workbook;){
wb.write(res.getOutputStream());
} catch (IOException e) {
logger.error("", e);
}
}
}
- logger