//前端不要ajax,post请求
@RequestMapping(value = \"/export\")
@ResponseBody
public void export(HttpServletResponse response) {
//获取数据
List<UserEntity> list = userRepository.findAll();
//excel标题
String[] = {\"编码\", \"昵称\", \"名\", \"姓\", \"密码\"};
//excel文件名
String fileName = \"users\" + \".xls\";
//sheet名
String sheetName = \"users\";
String[][] content;
content = new String[list.size() + 1][5];
for (int i = 0; i < list.size(); i++) {
UserEntity obj = list.get(i);
// content[i][0] = String.valueOf(obj.getId());
content[i][0] = String.valueOf(obj.getId());
content[i][1] = obj.getNickname();
content[i][2] = obj.getFirstName();
content[i][3] = obj.getLastName();
content[i][4] = obj.getPassword();
}
//创建HSSFWorkbook
HSSFWorkbook wb = ExcelUtil.getHSSFWorkbook(sheetName, , content, null);
//响应到客户端
try {
this.setResponseHeader(response, fileName);
OutputStream os = response.getOutputStream();
wb.write(os);
os.flush();
os.close();
} catch (Exception e) {
e.printStackTrace();
}
}
//发送响应流方法
public void setResponseHeader(HttpServletResponse response, String fileName) {
try {
try {
fileName = new String(fileName.getBytes(), \"ISO8859-1\");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
response.setContentType(\"application/octet-stream;charset=ISO8859-1\");
response.setHeader(\"Content-Disposition\", \"attachment;filename=\" + fileName);
response.addHeader(\"Pargam\", \"no-cache\");
response.addHeader(\"Cache-Control\", \"no-cache\");
} catch (Exception ex) {
ex.printStackTrace();
}
}
public class ExcelUtil {
/**
* 导出Excel
* @param sheetName sheet名称
* @param 标题
* @param values 内容
* @param wb HSSFWorkbook对象
* @return
*/
public static HSSFWorkbook getHSSFWorkbook(String sheetName,String [] ,String [][]values, HSSFWorkbook wb){
// 第一步,创建一个HSSFWorkbook,对应一个Excel文件
if(wb == null){
wb = new HSSFWorkbook();
}
// 第二步,在workbook中添加一个sheet,对应Excel文件中的sheet
HSSFSheet sheet = wb.createSheet(sheetName);
// 第三步,在sheet中添加表头第0行,注意老版本poi对Excel的行数列数有限制
HSSFRow row = sheet.createRow(0);
// 第四步,创建单元格,并设置值表头 设置表头居中
HSSFCellStyle style = wb.createCellStyle();
style.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 创建一个居中格式
//声明列对象
HSSFCell cell = null;
//创建标题
for(int i=0;i< .length;i++){
cell = row.createCell(i);
cell.setCellValue( [i]);
cell.setCellStyle(style);
}
sheet.setColumnWidth(0,4000);
sheet.setColumnWidth(1,2200);
//创建内容
for(int i=0;i<values.length;i++){
row = sheet.createRow(i + 1);
for(int j=0;j<values[i].length;j++){
//将内容按顺序赋给对应的列对象
row.createCell(j).setCellValue(values[i][j]);
}
}
return wb;
}
} 继续阅读与本文标签相同的文章
上一篇 :
阿里资深专家专访:流量清洗与人工智能
下一篇 :
角马漫谈第I期:光伏“新贵”钙钛矿
-
请求支援!我被“非结构化数据包围了” | 开发者必读(060期)
2026-05-18栏目: 教程
-
研发效能提升 36 计第一课:互联网时代研发效能的挑战和应对之道
2026-05-18栏目: 教程
-
Service Mesh 发展趋势:云原生中流砥柱
2026-05-18栏目: 教程
-
深入理解 Java 中 SPI 机制
2026-05-18栏目: 教程
-
阿里云“网红"运维工程师白金:做一个平凡的圆梦人
2026-05-18栏目: 教程
