JavaWeb项目导出Excel文件

Controller层:

	//导出处理
	@RequestMapping("export.do")
	public void export(HttpServletResponse response){
		//文件名
		String fileName="搜索结果"+System.currentTimeMillis()+".xls";
		//sheet名
		String sheetName="第一页";
		//标题
		String []title=new String[] {"类型","患者号","姓名","性别"};
		//内容
		String [][]values = new String[2][4];
		values[0][0]="住院";
		values[0][1]="1";
		values[0][2]="任*";
		values[0][3]="男";
		values[1][0]="门诊";
		values[1][1]="2";
		values[1][2]="杨*";
		values[1][3]="女";
		HSSFWorkbook wb=SearchService.exportExcel(sheetName, title, values, null);
		//将文件存到指定位置
	        try {
		    OutputStream os=response.getOutputStream();
                    response.setContentType("application/octet-stream;charset=ISO8859-1");  
                    response.setHeader("Content-Disposition", "attachment;filename="+ new String(fileName.getBytes("UTF-8"),"ISO8859-1"));  
                    //不保存缓存信息与response.reset同样效果
                    response.addHeader("Pargam", "no-cache");  
                    response.addHeader("Cache-Control", "no-cache");
                    wb.write(os);  
                    os.flush();  
                    os.close(); 
		} catch (IOException e) {
			e.printStackTrace();
		}    
	}

        使用时只需要传入自己的values数组即可

Service实现层(Controller层会调用):

	//excel导出
	public HSSFWorkbook exportExcel(String sheetName,String []title,String [][]values, HSSFWorkbook wb) {
		//第一步,创建一个webbook,即excel的文档对象
		if(wb==null) {
			wb=new HSSFWorkbook();
		}
		//第二步,在webbook中添加一个sheet,即excel的表单
		HSSFSheet sheet=wb.createSheet(sheetName);
                //设置列宽度
		//判断是否为空
		if(values!=null && values.length>0){
                   for(int i=0;i<values[0].length;i++){
                       sheet.setColumnWidth(i, 256*15);
                   }
                }
		//第三步,在sheet中添加表头第0行,即excel的行
		HSSFRow row=sheet.createRow(0);
		//第四步,创建单元格,并设置值表头,设置表头居中,即excel格子单元
		HSSFCellStyle style=wb.createCellStyle();
		//居中格式
		style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
		//边框填充
		style.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
		style.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
		style.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
		style.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
//        //背景颜色
//        style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);//设置前景填充样式
//        style.setFillForegroundColor(HSSFColor.DARK_RED.index);//前景填充色
		HSSFCell cell=null;
		//创建标题
		for(int i=0;i<title.length;i++) {
			cell=row.createCell(i);
			cell.setCellValue(title[i]);
			cell.setCellStyle(style);
		}
		// 创建内容
		for(int i=0;i<values.length;i++) {
			row=sheet.createRow(i+1);
			for(int j=0;j<values[i].length;j++) {
				cell=row.createCell(j);
				cell.setCellValue(values[i][j]);
				cell.setCellStyle(style);
			}
		}
		return wb;
	}

参考地址:https://www.cnblogs.com/crazyapple/p/5489588.html

猜你喜欢

转载自blog.csdn.net/HenryMrZ/article/details/80822446
今日推荐