1、实现把数据库的数据输入到Excel表格中
依赖
<!--poi-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
工具类
@RequestMapping("/excelXz")
@ResponseBody
public String excelXz(HttpServletResponse response) throws JsonProcessingException {
Map<String, Object> map = new HashMap<String, Object>();
List<StudyUser> studyUsers = studyCircularService.selSearch(map);
// 需要导出的数据
System.out.println("studyUsers:" + studyUsers);
if (studyUsers != null && studyUsers.size() > 0) {
String fileName = "studyUsers.xls";
try {
response.setHeader(
"Content-disposition",
"attachment;filename="
+ new String(fileName.getBytes("gb2312"),
"ISO8859-1"));
} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}// 设置文件头编码格式
response.setContentType("APPLICATION/OCTET-STREAM;charset=UTF-8");// 设置类型
response.setHeader("Cache-Control", "no-cache");// 设置头
response.setDateHeader("Expires", 0);// 设置日期头
// 这里是表格的头部
String[] titles = {"序号", "学号", "姓名", "班级", "专业", "违纪时间",
"违纪类型", "处分级别", "处分名称"};
try {
// 第一步,创建一个workbook,对应一个Excel文件
HSSFWorkbook workbook = new HSSFWorkbook();
// 第二步,在webbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet hssfSheet = workbook.createSheet("sheet1");
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制short
HSSFRow row = hssfSheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle hssfCellStyle = workbook.createCellStyle();
// 居中样式
hssfCellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
HSSFCell hssfCell = null;
for (int i = 0; i < titles.length; i++) {
hssfCell = row.createCell(i);// 列索引从0开始
hssfCell.setCellValue(titles[i]);// 列名1
hssfCell.setCellStyle(hssfCellStyle);// 列居中显示
}
// 第五步,写入实体数据
for (int i = 0; i < studyUsers.size(); i++) {
row = hssfSheet.createRow(i + 1);
StudyUser studyUser = studyUsers.get(i);
// 第六步,创建单元格,并设置值
row.createCell(0).setCellValue(i + 1);
row.createCell(1).setCellValue(studyUser.getSno());
row.createCell(2).setCellValue(studyUser.getName());
row.createCell(3).setCellValue(studyUser.getGrad());
row.createCell(4).setCellValue(studyUser.getMajor());
row.createCell(5).setCellValue(studyUser.getTimes());
row.createCell(6).setCellValue(studyUser.getType());
row.createCell(7).setCellValue(studyUser.getStudyCircular().getPunLevel());
row.createCell(8).setCellValue(studyUser.getStudyCircular().getPunName());
}
// 第七步,将文件输出到客户端浏览器
try {
workbook.write(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
System.out.println("导出信息失败!");
e.printStackTrace();
}
} else {
System.out.println("查询结果为空!");
}
return "成功";
}
2、实现把数据库的数据输入到Excel表格中
推荐博客:https://blog.csdn.net/qq_27328375/article/details/111641363