-
[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) { } }
'Programming > Java' 카테고리의 다른 글
[Excel POI] Mybatis ResultHandler 사용하여 대용량 데이터 추출 (1) 2019.03.29 댓글