注解很详细,
直接上代码:导出功能
/***
* 老村长导出excel
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("exportExcelAllTime")
public void laocunzhangexcel(HttpServletRequest request, HttpServletResponse response) throws Exception{
String[] title={"id","姓名","密码","薪资","生日","id"}; //设置Excel文件字段
List<User> userList=userService.findAllUserList();//从数据库获取信息
String filename="信息表"+System.currentTimeMillis()+".xls";//设置文件名
String sheetName="学生信息表";
String[][] vakue=upd(userList);
HSSFWorkbook wb= ExcelUtil.getHSSFWorkbook(sheetName,title,vakue,null);
String ddate = new SimpleDateFormat("yyyyMMddhhmmss").format(Calendar.getInstance().getTime());
//设置下载 输出Excel文件
response.setContentType("application/vnd.ms-excel;charset=UTF-8");
response.setHeader("Content-Disposition", "attachment; filename="+ new String(filename.getBytes("gb2312"),"iso8859-1") + "_" + ddate + ".xls");// 设定输出文件头
ServletOutputStream output = response.getOutputStream();
wb.write(output);
output.flush();
output.close();
}
导出工具类
public class ExcelUtil {
/*
* 导出Excel
* */
public static HSSFWorkbook getHSSFWorkbook(String sheetName,String[] title,String [][] vakue,HSSFWorkbook wb){
if (wb == null){
wb = new HSSFWorkbook();
}
int a = 0;
//创建一页
HSSFSheet sheet=wb.createSheet();
//在sheet周中添加表头第0行,注意老版本poi对EXCEL行数限制s
HSSFRow row = sheet.createRow(a);
sheet.autoSizeColumn((short) 0); // 单元格宽度自适应
//设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
//声明列对象 创建表头
HSSFCell cell = null;
cell = row.createCell(0);
cell.setCellValue(sheetName);
//合并第一行单元格 代表起始行 结束行 起始列 结束列
sheet.addMergedRegion(new CellRangeAddress(0, 0, 0, 6));
cell.setCellStyle(style);
//创建标题
HSSFRow row1 = sheet.createRow(++a);
for(int i=0;i<title.length;i++) {
row1.createCell(i).setCellValue(title[i]);
}
//设置值
for(int l = 0;l<1;l++) {
HSSFRow row2 = sheet.createRow(++a);
for (int j = 0; j <vakue.length; j++) {
row2.createCell(j).setCellValue(vakue[0][j]);
}
}
return wb;
}
}
//初次写博客,有不足之处请多多指教