针对于项目中用到的技术点的归纳{导出excel}

这是我在项目所遇到的,导出Excel表格功能,为了以后工作的需要,所以我把项目所遇到的技术点以及功能模块记录下来,也是为了以后的工作中遇到同样的就不必费心思去写了,虽然不是很复杂但也得花点时间的,下面是代码

// 导出用户信息到excel表
	public void downloadOrg_emp(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		//创建excel表头部分
		String[] execelHeader = {"用户账户","真实姓名","角色","操作"};
		
		//从数据库中查询人员的信息
		List<Org_employee> list = userService.getAllOrgEmp();
		//创建excel对象
		HSSFWorkbook wb = new HSSFWorkbook();
		//创建sheet
		HSSFSheet sheet = wb.createSheet();
//		sheet.createFreezePane(1, 3);//冻结
		//设置列宽
		sheet.setColumnWidth(0, 3500);
		sheet.setColumnWidth(1, 3500);
		sheet.setColumnWidth(2, 3500);
		sheet.setColumnWidth(3, 3500);
		
		//创建行(第一行表头)
		HSSFRow row = sheet.createRow((int)0);
		
		//为表头创建样式
		HSSFCellStyle style = wb.createCellStyle();
		
		//设置字体 样式
		HSSFFont headfont = wb.createFont();
		//字体
		headfont.setFontName("黑体");
		//字体大小
		headfont.setFontHeightInPoints((short)15);
		//字体的粗细
		headfont.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
		//将设置好的样式添加到样式中
		style.setFont(headfont);
		
		//设置第一行表头信息
		for(int i=0;i<execelHeader.length;i++){
			//在一行中创建列
			HSSFCell cell = row.createCell(i);
			//设置列中的表头信息
			cell.setCellValue(execelHeader[i]);
			//为列设置样式
			cell.setCellStyle(style);
		}
		//设置其余行的列的值 
		//创建样式
		HSSFCellStyle styleOther = wb.createCellStyle();
		//居中显示
		styleOther.setAlignment(HSSFCellStyle.ALIGN_CENTER);
		
		for(int i=0;i<list.size();i++){
			row=sheet.createRow(i+1);
			Org_employee orgEmp = list.get(i);
			Integer rid = orgEmp.getRoleid();
			//查询角色
			OrgRole role = roleService.getROleByRid(rid);
			//为每一行放值
			HSSFCell cell1 = row.createCell(0);
			cell1.setCellValue(orgEmp.getLoginname());
			cell1.setCellStyle(styleOther);
			HSSFCell cell2 = row.createCell(1);
			cell2.setCellValue(orgEmp.getUsername());
			cell2.setCellStyle(styleOther);
			HSSFCell cell3 = row.createCell(2);
			if(role.getOrg_id() == orgEmp.getId()){
				cell3.setCellValue(role.getRoleName());
			}
			HSSFCell cell4 = row.createCell(3);
			cell4.setCellValue("操作");
			cell4.setCellStyle(styleOther);
		}
		
		//设置下载时的客户端Excel的名称
		String filename = "未命名.xls";
		filename = URLEncoder.encode(filename,"utf-8");
		//设置响应信息类型
		response.setContentType("application/vnd.ms-excel");
		//设置响应的头信息
		response.setHeader("Content-disposition", "attachment;filename="+filename);
		//通过输出 流将文件输出到客户端
		OutputStream outputStream = response.getOutputStream();
		wb.write(outputStream);
		outputStream.flush();
		outputStream.close();
	}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值