Poi导出表格代码

Poi文件上传解析代码

导出代码:

@RequestMapping("subtotals")
public String subTotals(Subscribe subscribe,Model model,String pageNow,HttpServletRequest request,HttpServletResponse httpServletResponse) throws IOException{
	//查出所有制药方式
	List<Subscribe> list = pageView.getRecords();
	if(list.size()>0){
		//通过poi创建对象
		HSSFWorkbook hssfWorkbook=new HSSFWorkbook();
		//创建标签页
		HSSFSheet createSheet = hssfWorkbook.createSheet("sheet1");
		//设置第一行信息
		HSSFRow createRow = createSheet.createRow(0);
		createRow.createCell(0).setCellValue("编号");
		createRow.createCell(1).setCellValue("用户名");
		createRow.createCell(2).setCellValue("密码");
		createRow.createCell(3).setCellValue("类型");
		createRow.createCell(4).setCellValue("生日");
		createRow.createCell(5).setCellValue("性别");
		createRow.createCell(6).setCellValue("手机");
		//遍历数据
		for (Subscribe su : list) {
			//设置进表格
			HSSFRow createRow2 = createSheet.createRow(createSheet.getLastRowNum()+1);
			createRow2.createCell(0).setCellValue(su.getId());
			createRow2.createCell(1).setCellValue(su.getAddUserName());
			createRow2.createCell(2).setCellValue(su.getCustomerName());
			if(su.getType()!=null){
				createRow2.createCell(3).setCellValue(su.getType());
			}else {
				createRow2.createCell(3).setCellValue("无数据");
			}
			
			if(su.getAddTime()!=null){
				createRow2.createCell(4).setCellValue(su.getAddTime());
			}else {
				createRow2.createCell(4).setCellValue("无数据");
			}
			if(su.getSex()!=null){
				createRow2.createCell(5).setCellValue(su.getSex());
			}else {
				createRow2.createCell(5).setCellValue("无数据");
			}
			
			createRow2.createCell(6).setCellValue(su.getBeginDate());
			
			
		}
		//设置文件名
		String fileName="客户数据.xls";
		//获取所用浏览器请求头信息
		String agent = request.getHeader("User-Agent");
		 //处理中文名乱码问题
		fileName = FileUtil.encodeDownloadFilename(fileName, agent);
		//作为附件下载需要一个流  两个头
		fileName=new String(fileName.getBytes("gbk"),"iso8859-1");//防止中文乱码
        HttpHeaders headers=new HttpHeaders();//设置响应头
        headers.add("Content-Disposition", "attachment;filename="+fileName);
        HttpStatus statusCode = HttpStatus.OK;//设置响应吗
		httpServletResponse.setHeader("content-type", "application/vnd.ms-excel");
		httpServletResponse.setHeader("content-disposition", "attachment;fileName="+fileName);
		//给这个对象设置一个流
		hssfWorkbook.write(httpServletResponse.getOutputStream());
	}
	return NONE;
	
}

fileUtil:

/**
 * 下载文件时,针对不同浏览器,进行附件名的编码
 * 
 * @param filename
 *            下载文件名
 * @param agent
 *            客户端浏览器
 * @return 编码后的下载附件名
 * @throws IOException
 */
public static String encodeDownloadFilename(String filename, String agent)
		throws IOException {
	if (agent.contains("Firefox")) { // 火狐浏览器
		filename = "=?UTF-8?B?"
				+ new BASE64Encoder().encode(filename.getBytes("utf-8"))
				+ "?=";
		filename = filename.replaceAll("\r\n", "");
	} else { // IE及其他浏览器
		filename = URLEncoder.encode(filename, "utf-8");
		filename = filename.replace("+"," ");
	}
	return filename;
}

导入代码:

@ResponseBody
@RequestMapping("subtotalss")
public void subTotalss(Subscribe subscribe,Model model,@RequestParam MultipartFile file,HttpServletRequest request,HttpServletResponse httpServletResponse) throws IOException{
	//先将文件上传服务器
	FileBean uploadFile = ImageUtil.uploadFile(file);
	String fileName = "E:/hsdresource/resource/"+uploadFile.getFileName();//获取文件保存路径
	FileInputStream fileInputStream = new FileInputStream(fileName);
	
	HSSFWorkbook hssfWorkbook= new HSSFWorkbook(fileInputStream);
	//获取文件中的第一页
	HSSFSheet sheet = hssfWorkbook.getSheet("sheet1");
	List<Subscribe> list=new ArrayList<>();
	//遍历sheet标签页中行
	for (Row row : sheet) {
		//判断getRowNum==0
		if(row.getRowNum()==0){
			continue;
		}
		// 将区域编号的cell中的内容当做字符串处理
		
		row.getCell(0).setCellType(HSSFCell.CELL_TYPE_STRING);
		String id = row.getCell(0).getStringCellValue();
		String province = row.getCell(1).getStringCellValue();
		//赋值到对象  
		subscribe.setId(Integer.parseInt(id));
		list.add(subscribe);
	}
	//		subscribeService.save(list);//进行保存
}

实现导出第二种方式

Jsp中加入 (页面直接展示数据即可)
<%response.setContentType(“application/vnd.ms-excel”);
response.addHeader(“Content-Disposition”, “attachment;filename=toll.xls”);%>
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值