ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Excel POI] Jqplot으로 그린 Chart - Excel 출력
    Programming/Java 2019. 3. 29. 14:23

    //jsp에서 그려진 Jqplot Chart의 주소를 추출한다.

    // 추출한 url을 Excel 요청 시 함께 보낸다.

      html2canvas($("#chart"), {
    	onrendered: function(canvas) {
    	 url = canvas.toDataURL();
        }
     });
     
    

     

    //Excel 추출 부분

    //받은 URL을 image로 변환하여 Excel에 삽입한다.

     

    public void printImage(String url, Workbook workbook, XSSFSheet sheet, int col, int row
                                               , double size, double size2) throws IOException {    
    		
    		XSSFRow xrow = null;
    		XSSFCell xcell = null;
    		int cellIdx = col;
    		
    		if (col == 0) {
    			xrow = sheet.createRow(row-1);
    		} else {
    			xrow = sheet.getRow(row-1);
    		}
    		
    		String data = url.split(",")[1];
    		byte[] imageBytes = DatatypeConverter.parseBase64Binary(data);
    		ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream(); 
    		
    		try {
    			BufferedImage bufImg = ImageIO.read(new ByteArrayInputStream(imageBytes));
    			ImageIO.write(bufImg, "png", byteArrayOut); 
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	
    		
    		try {
    	        // 이미지 파일 로드
    	        int indx = workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG);
    	        
    	        XSSFCreationHelper helper = (XSSFCreationHelper) workbook.getCreationHelper();
    	        XSSFDrawing drawing = sheet.createDrawingPatriarch();
    	        XSSFClientAnchor anchor = helper.createClientAnchor();
    	        
    	        // 이미지를 출력할 CELL 위치 선정
    	        anchor.setCol1(col);
    	        anchor.setRow1(row);
    	        // 이미지 그리기
    	        XSSFPicture pict = drawing.createPicture(anchor, indx);
    	        
    	        // 이미지 사이즈 비율 설정
    	        pict.resize(size, size2);
    	    } catch (Exception e) {
    	    }
    		
    	}
    

    댓글

Copyright 2019. 콩이볼 All rights reserved.