在Java Web中Excel文件如何使用POI实现导出

  介绍

在Java Web中Excel文件如何使用POI实现导出?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

采用Spring mvc架构:

控制器层代码如下

@ Controller   公开课StudentExportController {   @ autowired   私人StudentExportService StudentExportService;   @RequestMapping (value=https://www.yisu.com/zixun//excel/出口)   公共空间exportExcel (HttpServletRequest请求,HttpServletResponse响应)   抛出异常{   列表<学生>=new ArrayList <学生> ();   列表。add(新学生(1000年,“zhangsan”,“20”));   列表。add(新学生(1001年,“lisi”,“23”));   列表。add(新学生(1002年,“wangwu”,“25”));   HSSFWorkbook wb=studentExportService.export(列表);   response.setContentType(“应用程序/vnd.ms-excel”);   响应。setHeader(“附加”,“附件;文件名=student.xls”);   OutputStream ouputStream=response.getOutputStream ();   wb.write (ouputStream);   ouputStream.flush ();   ouputStream.close ();   }   }

服务层代码如下:

@ Service   公开课StudentExportService {   String [] excelHeader={“Sno",“Name",“Age"};   公共HSSFWorkbook出口(List列表){   HSSFWorkbook wb=new HSSFWorkbook ();   HSSFSheet表=wb.createSheet (“Campaign");   HSSFRow行=sheet.createRow (0) (int);   HSSFCellStyle风格=wb.createCellStyle ();   style.setAlignment (HSSFCellStyle.ALIGN_CENTER);   for (int i=0;我& lt;excelHeader.length;我+ +){   HSSFCell细胞=row.createCell(我);   cell.setCellValue (excelHeader[我]);   cell.setCellStyle(风格);   sheet.autoSizeColumn(我);   }   for (int i=0;我& lt;list.size ();我+ +){   行=表。createRow (i + 1);   学生学生=list.get(我);   row.createCell (0) .setCellValue (student.getSno ());   row.createCell (1) .setCellValue (student.getName ());   row.createCell (2) .setCellValue (student.getAge ());   }   返回白平衡;   }   }

前台的js代码如下:

& lt; script>   函数exportExcel () {   location.href=https://www.yisu.com/zixun/癳xcel/出口”rel=巴獠縩ofollow”;      }   

设置Excel样式以及注意点:

 String [] excelHeader={“所属区域地(市)“,“机房“,“机架资源情况“,“”,“”,“”,“”,
  ““,“端口资源情况“,“”,“”,“”,“”,“”,“机位资源情况“、““““,“设备资源情况“,
  ““““,“IP资源情况“、““““““,““,“网络设备数“};
  String [] excelHeader1={““,““,“总量(个)”,“空闲(个)“,“预占(个)“,“实占(个)”,
  “自用(个)”,“其它(个)“,“总量(个)“,“在用(个)”,“空闲(个)“,“总带宽(M)“,
  “在用带宽(M)“,“空闲带宽(M)“,“总量(个)“,“在用(个)”,“空闲(个)“,“设备总量(个)”,
  “客户设备(个)“,“电信设备(个)“,“总量(个)”,“空闲(个)“,“预占用(个)“,“实占用(个)”,
  “自用(个)“,““};//单元格列宽
  int [] excelHeaderWidth={150, 120, 100, 100, 100, 100, 100, 100, 100,
  100,100,120,120,120,120,120,120,150,150,150,120,
  120、150、150、120、150};
  HSSFWorkbook wb=new HSSFWorkbook ();
  HSSFSheet表=wb.createSheet(“机房报表统计“);
  HSSFRow行=sheet.createRow (0) (int);
  HSSFCellStyle风格=wb.createCellStyle ();//设置居中样式
  style.setAlignment (HSSFCellStyle.ALIGN_CENTER);//水平居中
  style.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);//垂直居中//设置合计样式
  HSSFCellStyle style1=wb.createCellStyle ();
  字体字体=wb.createFont ();
  font.setColor (HSSFColor.RED.index);
  font.setBoldweight (Font.BOLDWEIGHT_BOLD);//粗体
  style1.setFont(字体);
  style1.setAlignment (HSSFCellStyle.ALIGN_CENTER);//水平居中
  style1.setVerticalAlignment (HSSFCellStyle.VERTICAL_CENTER);//垂直居中//合并单元格//第一行第一列(基于)最后一行(基于)(基于)//列(基于)
  表。addMergedRegion(新CellRangeAddress (0, 1, 0, 0));
  表。addMergedRegion(新CellRangeAddress (0, 1, 1, 1));
  表。addMergedRegion(新CellRangeAddress (0, 0, 2、7));
  表。addMergedRegion(新CellRangeAddress (0, 0, 8、13));
  表。addMergedRegion(新CellRangeAddress (0, 0, 14, 16));
  表。addMergedRegion(新CellRangeAddress(0, 0, 17日,19));
  表。addMergedRegion(新CellRangeAddress(0, 0, 20日24));
  表。addMergedRegion(新CellRangeAddress(0, 1, 25日,25));//设置列宽度(像素)
  for (int i=0;我& lt;excelHeaderWidth.length;我+ +){
  表。setColumnWidth(我32 * excelHeaderWidth[我]);
  }//添加表格头
  for (int i=0;我& lt;excelHeader.length;我+ +){
  HSSFCell细胞=row.createCell(我);
  cell.setCellValue (excelHeader[我]);
  cell.setCellStyle(风格);
  }
  行=sheet.createRow ((int) 1);
  for (int i=0;我& lt;excelHeader1.length;我+ +){
  HSSFCell细胞=row.createCell(我);
  cell.setCellValue (excelHeader1[我]);
  cell.setCellStyle(风格);
  }

在Java Web中Excel文件如何使用POI实现导出