導出Excel文件是業務中經常遇到的需求,以下是經常遇到的一些問題:
1,導出中文文件名亂碼
String filename = "sheet1";
response.setCharacterEncoding("UTF-8");
response.setContentType("application/octet-stream");
response.setHeader("Content-Disposition","attachment;filename=" + URLEncoder.encode(filename, "UTF-8"));
2,導出多個sheet怎么實現(map)
private Map<String, Object> workbook = new LinkedHashMap();
3,導出excel的表頭是多級的怎么實現
參考這個可以實現:https://blog.csdn.net/qq_28430851/article/details/80496125,依賴的jar包版本升級,需要做些許改動。
4,導出的sheet命名不規范報錯
public static String excelSheetName(String str) {
if (StringUtils.isBlank(str)){
str = String.valueOf(System.currentTimeMillis());
}else {
String regex = "(\\*|/|:|\\\\|\\[|\\]|\\?)";
str = str.replaceAll(regex, "-");
if (str.length() > EXCEL_SHEET_NAME_LENGTH) {
str = str.substring(0, EXCEL_SHEET_NAME_LENGTH);
}
}
return str;
}