介绍
在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实现导出