List<Map<String, Object>> list=passBookService.exportPassBookExcel(params);//查询出来的数据
@SuppressWarnings({ “unused”, “resource” })//忽略导出文件
XSSFWorkbook workBook = new XSSFWorkbook();// 创建一个Excel文件
XSSFCellStyle boderStyle = workBook.createCellStyle();
XSSFSheet sheet = workBook.createSheet(“power”);//设置Excel第一页名字
String fileName = “项目信息” + “.xlsx”;//设置要导出的文件的名字
XSSFRow row = sheet.createRow(0);//生成第一行
XSSFFont headerFont1 = workBook.createFont();
headerFont1.setBold(true);// 字体加粗
boderStyle.setFont(headerFont1);//给予样式
String [] headers={“项目名称”,“项目规模”,“所属区域”,“项目立项”,“项目沟通会”,“项目招标”,“项目投标”,“项目中标”,“项目实施”,“项目验收”,“项目回款”};
for(int i=0;i<headers.length;i++){
XSSFCell cell = row.createCell(headers[i]);//获取第一行的每一列
cell.setCellValue(headers[i]);//给予这一列value值
cell.setCellStyle(boderStyle);//将上面文字加粗的样式添加到这一列中
cell.getCellStyle().setAlignment(HorizontalAlignment.CENTER);//文字居中
}
int rowNum = 1;
for(Map<String, Object> bean:list) {
XSSFRow row1 = sheet.createRow(rowNum);//从第二行开始获取(第一行设置了标题)
row1.createCell(0).setCellValue(bean.get(“projectName”).toString());//项目名称
//createCell(0)获取的是这一行的第一列,然后在通过setCellValue来赋值。只能存int与字符串类型
rowNum++;
}
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");//.xlsx格式
response.setHeader("Content-disposition", "attachment;filename=" +URLEncoder.encode(fileName, "utf-8") );
response.setHeader("Content-disposition", "attachment;filename=" +URLEncoder.encode(fileName, "utf-8") );
response.flushBuffer();
workBook.write(response.getOutputStream());
如若换成xls文件导出
将XSSFWorkbook换成HSSFWorkbook
XSSFSheet换HSSFSheet
XSSFRow 换HSSFRow
输出换成response.setContentType(“application/vnd.ms-excel”);//.xls格式
就行了