主要是使用了Hutool工具类来实现excel导出功能 (参考自己的项目业务逻辑来修改代码)
页面
Controller层
工具类
结果:表头是实体类中是什么出来的表头就是什么,我实体类中使用的汉字
代码展示
页面 (if判断可省略 看自己的业务逻辑来实现)
<button class="layui-btn" onclick="exportButton()" data-method="offset" type="button">导出</button>
function exportButton() {
var id = $("#id").val();
if(id==="yuan"){
window.location.href = "${base}/user/selectMaterialDefectExcel?startTime="+$("#test1").val()+"&endTime="+$("#test2").val();
}
}
Controller层
@RequestMapping(value = "selectMaterialDefectExcel",method = RequestMethod.GET)
public void selectMaterialDefectExcel(String startTime,String endTime,HttpServletResponse response){
List<DefectTypes> defectTypes = productionDefectsService.selectMaterialDefect(startTime, endTime);
List<Excel> excels = new ArrayList<>();
for (int i = 0; i < defectTypes.size(); i++) {
DefectTypes defectTypes1 = defectTypes.get(i);
Excel excel = new Excel();
excel.set编码(defectTypes1.getDefectTypes());
excel.set百分率(defectTypes1.getDefect());
excel.set数量(defectTypes1.getDefectNum());
excels.add(excel);
}
try {
MyExcel.getExcel(response,excels,"原材料缺陷统计.xlsx");
}catch (Exception e){
e.printStackTrace();
}
}
工具类
import cn.hutool.poi.excel.ExcelUtil;
import cn.hutool.poi.excel.ExcelWriter;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.List;
public class MyExcel {
public static void getExcel(HttpServletResponse response, List list,String fileName) throws IOException {
ExcelWriter writer = ExcelUtil.getWriter(true);
//合格并单元格,使用默认标题
//一次性写出内容,使用默认样式
writer.write(list);
response.reset();
response.setContentType("application/octet-stream;charset=utf-8");
response.setHeader("Content-Disposition","attachment;fileName="+ URLEncoder.encode(fileName,"UTF-8"));
writer.flush(response.getOutputStream());
//关闭writer,释放内存
writer.close();
}
}