现在的位置: 首页 > 综合 > 正文

poi 修改EXCEL 内容

2013年10月08日 ⁄ 综合 ⁄ 共 1762字 ⁄ 字号 评论关闭
HSSFWorkbook workBook =readXls(request, fileName);
		if(workBook==null){
			return;
		}
HSSFSheet sheet = workBook.getSheet("sheet1");
response.setHeader("Content-type", "application/vnd.ms-excel");
		response.setHeader("Content-Disposition", "attachment; filename="
				+ encodeFileName(request, counter.getArea()+counter.getName()+"XXXXXXXX.xls"));
		
		ServletOutputStream fileOut =response.getOutputStream();
		workBook.write(fileOut);
		fileOut.flush();
		fileOut.close();
private HSSFWorkbook readXls(HttpServletRequest request,String fileName) throws IOException{
		String filePath = request.getSession().getServletContext()
				.getRealPath("");
		// filePath=ReportManageController.class.getResource("/").getPath();
		InputStream inp = null;
		try {
			inp = new FileInputStream(filePath + "/" + fileName);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		HSSFWorkbook workBook=null;
		if(inp!=null){
			workBook = new HSSFWorkbook(inp);
		}
		return workBook;
	}

private void setSheetCellValue(HSSFSheet sheet, int rowIndex, int colIndex,
			Object value,int cellType) {
		// HSSFComment conment=sheet.getCellComment(rowIndex, colIndex);
		HSSFRow row = sheet.getRow(rowIndex);
		HSSFCell cell = row.getCell(colIndex);
		cell.setCellType(cellType);
		switch (cell.getCellType()) {
		case Cell.CELL_TYPE_STRING:
			cell.setCellValue(value.toString());
			break;
		case Cell.CELL_TYPE_NUMERIC:
			cell.setCellValue(Integer.parseInt(value.toString()));
			break;
		default:
			cell.setCellValue(value.toString());
		}
	}

private String encodeFileName(HttpServletRequest request, String fileName)
			throws UnsupportedEncodingException {
		String agent = request.getHeader("USER-AGENT");
		if (null != agent && -1 != agent.indexOf("MSIE")) {
			return URLEncoder.encode(fileName, "UTF8");
		} else if (null != agent && -1 != agent.indexOf("Mozilla")) {
			return "=?UTF-8?B?"+ (new String(Base64.encodeBase64(fileName.getBytes("UTF-8")))) + "?=";
		} else {
			return fileName;
		}
	}

抱歉!评论已关闭.