当前位置 : 主页 > 编程语言 > java >

exl文件上传与下载

来源:互联网 收集:自由互联 发布时间:2021-06-28
下载:web层业务实现 @Action(value="subArea_exportExl")public void exportExl(){HttpServletResponse response = ServletActionContext.getResponse();try {ServletOutputStream out = response.getOutputStream();String agent=ServletActionCont
下载:web层业务实现
@Action(value="subArea_exportExl")
public void exportExl(){
	HttpServletResponse response = ServletActionContext.getResponse();
	try {
		ServletOutputStream out = response.getOutputStream();
		String agent=ServletActionContext.getRequest().getHeader("User-Agent");
		String fileName=FileUtils.encodeDownloadFilename("分区数据.xls", agent);
		
		response.setHeader("content-disposition", "attachment;fileName="+fileName);
		response.setContentType("application/vnd.ms-excel");
		
		subAreaService.exportExl(out);
	} catch (Exception e) {
		e.printStackTrace();
	}
}
下载-基于模板:service层业务实现
@Override
public void exportExl(ServletOutputStream out) throws Exception {
	File file=new File("e:\\subArea.xls");
	HSSFWorkbook book=new HSSFWorkbook(new FileInputStream(file));
	
	HSSFSheet sheet3 = book.getSheetAt(2);
	HSSFCellStyle cellStyle = sheet3.getRow(0).getCell(0).getCellStyle();
	
	List
 
   list=subAreaDao.findAll();
	
	HSSFSheet sheet = book.getSheetAt(0);
	int k=2;
//		分拣编号	省	市	区	关键字	起始号	终止号	单双号	辅助关键字
	HSSFRow row=null;
	for (SubArea subArea : list) {
		row= sheet.createRow(k);
		row.createCell(0).setCellValue(subArea.getId());
		row.createCell(1).setCellValue(subArea.getArea().getProvince());
		row.createCell(2).setCellValue(subArea.getArea().getCity());
		row.createCell(3).setCellValue(subArea.getArea().getDistrict());
		row.createCell(4).setCellValue(subArea.getKeyWords());
		row.createCell(5).setCellValue(subArea.getStartNum());
		row.createCell(6).setCellValue(subArea.getEndNum());
		row.createCell(7).setCellValue(subArea.getSingle());
		row.createCell(8).setCellValue(subArea.getAssistKeyWords());
		for (int i = 0; i < 9; i++) {
			row.getCell(i).setCellStyle(cellStyle);
		}
		k++;
	}
	book.write(out);
}
 
fileUtils
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;
}
subArea.xls subArea.xls
网友评论