java 关于excel下载 struts2 servlet springmvc

其实不用框架完全用servlet就可以完成excel下载

struts2下载的例子这里就不说了,

servlet下载excel的例子:      

	XSSFWorkbook workbook = new XSSFWorkbook();
	XSSFSheet sheet = workbook.createSheet("first");
	sheet.autoSizeColumn(0);  
        XSSFRow row = sheet.createRow(0);  
        row.createCell(0).setCellValue("Name");  
        row.createCell(1).setCellValue(2.2);
        XSSFCell cell = row.createCell(2);  
        XSSFCellStyle style = workbook.createCellStyle();  
        XSSFCreationHelper h = workbook.getCreationHelper();  
          
        style.setDataFormat(h.createDataFormat().getFormat("yyyy-MM-dd"));  
        style.setAlignment(XSSFCellStyle.VERTICAL_CENTER);  
          
        cell.setCellStyle(style);  
        cell.setCellValue(new Date());  
          
        //设置第n单元格的宽度,自动  
        sheet.autoSizeColumn(2);  
          
        OutputStream out = response.getOutputStream();  
        workbook.write(out);  
		
		response.setContentType("text/html;charset=UTF-8");
		BufferedInputStream in = null;
		BufferedOutputStream out = null;
		request.setCharacterEncoding("UTF-8");
		String rootpath = request.getSession().getServletContext().getRealPath("/");
		String fileName = request.getParameter("f");
		try {
			File f = new File(rootpath + "template/" + fileName);
			response.setContentType("application/x-excel");
			response.setCharacterEncoding("UTF-8");
			response.setHeader("Content-Disposition", "attachment; filename="+fileName);
			response.setHeader("Content-Length", String.valueOf(f.length()));
			in = new BufferedInputStream(new FileInputStream(f));
			out = new BufferedOutputStream(response.getOutputStream());
			byte[] data = new byte[1024];
			int len = 0;
			while (-1 != (len = in.read(data, 0, data.length))) {
				out.write(data, 0, len);
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (in != null) {
				in.close();
			}
			if (out != null) {
				out.close();
			}
		}

spring mvc 下载excel例子

@RequestMapping("/exprotData")
public ModelAndView exprotData(HttpServletRequest request,HttpServletResponse response) throws Exception {
	String customId = request.getParameter("customId");
	Map params = request.getParameterMap();
	effecQueryService.exprotEffectData(customId,params);
	List list = new ArrayList();  
        Map model = new HashMap();  
        list.add("test1");  
        list.add("test2");  
        model.put("list", list);  
        EffectDataExcelView viewExcel = new EffectDataExcelView();
        return new ModelAndView(viewExcel, model); 
}

excel视图

/**
 * 生成excel视图,可用excel工具打开或者保存
 * 
 * @author fanzg
 * 
 */
public class EffectDataExcelView extends AbstractExcelView {

	@Override
	protected void buildExcelDocument(Map<String, Object> model,
			HSSFWorkbook workbook, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		
        String excelName = "用户信息.xls";  
        // 设置response方式,使执行此controller时候自动出现下载页面,而非直接使用excel打开  
        response.setContentType("APPLICATION/OCTET-STREAM");  
        response.setHeader("Content-Disposition", "attachment; filename="+ URLEncoder.encode(excelName, "UTF-8"));    

		HSSFSheet sheet = workbook.createSheet("list");
		sheet.setDefaultColumnWidth((short) 12);

		HSSFCell cell = getCell(sheet, 0, 0);
		setText(cell, "Spring Excel test");

		HSSFCellStyle dateStyle = workbook.createCellStyle();
		// dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("mm/dd/yyyy"));
		cell = getCell(sheet, 1, 0);
		cell.setCellValue("日期:2008-10-23");
		// cell.setCellStyle(dateStyle);
		getCell(sheet, 2, 0).setCellValue("测试1");
		getCell(sheet, 2, 1).setCellValue("测试2");

		HSSFRow sheetRow = sheet.createRow(3);
		for (short i = 0; i < 10; i++) {
			sheetRow.createCell(i).setCellValue(i * 10);
		}
	}

}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值