java的excel的导出

@RequestMapping(params="method=downloadExcel", method=RequestMethod.GET)
public ResponseEntity<byte[]> downloadExcel(HttpServletRequest request) throws UnsupportedEncodingException {
	//设置Http头
	HttpHeaders responseHeaders = new HttpHeaders();
	responseHeaders.setContentType(MediaType.APPLICATION_OCTET_STREAM);
	//报表的名字
	String fileName = "发电机参数表.xls";
		
	//模板的路径
	String tplPath = "/WEB-INF/designer/componentCostQuery.xls";
		
	//设置http头,设置文件下载名称
	responseHeaders.add("content-disposition", "attachment;filename="+
        newString(fileName.getBytes("gb2312"), "ISO8859-1" ));
		
	//模板设计器
	WorkbookDesigner designer = new WorkbookDesigner();
	String path = request.getServletContext().getRealPath(tplPath);
	//内存流
	ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
	ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();
	try {
		//创建工作簿 等于excel 
		Workbook wb = new Workbook(path);
		designer.setWorkbook(wb);
			
		//填充数据
		//designer.setDataSource("Data", dataList);
		//designer.setDataSource("title", "配件二维码查询表");
			
		//绑定数据
		designer.process();
		
		//输出到内存流
		wb.save(outputStream, wb.getFileFormat());
			
		//POI API 目的删掉最后一个sheet
		org.apache.poi.ss.usermodel.Workbook poiWorkbook = new HSSFWorkbook(
                new ByteArrayInputStream(outputStream.toByteArray()));
		int sheetcount = poiWorkbook.getNumberOfSheets();
		poiWorkbook.removeSheetAt(sheetcount-1);
		poiWorkbook.setActiveSheet(0);
		poiWorkbook.write(outputStream2);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
		//返回一个下载的流
		return new ResponseEntity<byte[]>(outputStream2.toByteArray(), responseHeaders, HttpStatus.OK);
	}这些是后台代码
前台需要用window.location.href = 'ImportExcelController.do?method=downloadExcel';调用
 

猜你喜欢

转载自blog.csdn.net/gelong_bokewang/article/details/79073895