POI를 사용하여 이미지 내보내기 기능 및 Url을 하이퍼링크로 내보내기 설정
최근 한 항목은 시험 인원을 대상으로 사진을 찍어서 찍은 사진을 엑셀로 내보내는 것이다. 시험을 통해 엑셀로 내보내는 것은 확실하지만 실용성이 강하지 않다. 만약에 한 시험에서 50명이 계산하면 한 사람이 사진을 3장 찍으면 평균 사진 2M, 2*3*50은 적어도 300M의 크기가 있고 그림의 길이가 너무 넓어서 엑셀에서 보여주기에 적합하지 않다.그리고 내보낸 후에 이 Excel 파일이 너무 커도;파일이 너무 느리게 열립니다.따라서 일반적인 사용자의 기본 정보에 적합한 Excel로 그림을 내보냅니다. 만약에 개인의 1인치 사진 등등.이 방안에 대해 우리는 다음에 말한 그림을 내보내는 접근 주소 Url을 사용하고 링크를 직접 눌러서 접근할 수 있도록 포맷하기로 결정했다.
1.1 그림을 Excel로 내보내고 좌표에 삽입
관련 방법 매개 변수 설명
//HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2)에 대한 매개 변수,
여기서 설명할 필요가 있다.
//dx1: 시작 셀의 x 편이량,//dy1: 시작 셀의 y 편이량,
//dx2: 셀의 x 오프셋을 종료하고,//dy2: 셀의 y 오프셋을 종료하고,
//col1: 시작 셀 열 번호, 0부터 계산;//row1: 시작 셀 줄 번호, 0부터 계산,
//col2: 셀 열 번호를 종료하고 0부터 계산합니다.//row2: 셀 줄 번호를 종료하고 0부터 계산합니다.
ByteArrayOutputStream byteArrayOut = new ByteArrayOutputStream();
BufferedImage bufferImg = ImageIO.read(new File(strAppRootPath + "images/" + "bxlogo.png"));
ImageIO.write(bufferImg, "png", byteArrayOut);
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 150, 1000, 210, (short) 0, 0, (short) 1, 1);
patriarch.createPicture(anchor, workbook.addPicture(byteArrayOut.toByteArray(), HSSFWorkbook.PICTURE_TYPE_PNG));
1.2 Excel로 그림 내보내기, 셀에 그림 삽입, 다른 그림 불러오는 방법
// PNG Excel
String fileName = strAppRootPath + "images/" + "bxlogo.png";
InputStream is = new FileInputStream(fileName);
byte[] bytes = IOUtils.toByteArray(is);
int pictureIdx = workbook.addPicture(bytes, Workbook.PICTURE_TYPE_PNG);
CreationHelper helper = workbook.getCreationHelper();
Drawing drawing = sheet.createDrawingPatriarch();
ClientAnchor anchor = helper.createClientAnchor();
//
anchor.setCol1(0);
anchor.setRow1(1);
//
Picture pict = drawing.createPicture(anchor, pictureIdx);
pict.resize();
그 중에서 인터넷에서 그림을 다운로드하여 실현하는 방식으로 이 글을 참고할 수 있다
네트워크의 그림 자원 가져오기
2, Excel에서 내보내는 Url은 하이퍼링크 용도
앞에서 말한 바와 같이 내보낸 그림이 너무 크면 다른 방법으로 연결된 주소를 내보낼 수 있습니다.하지만 Excel 단원의 연결 방식을 설정해야 합니다.
HSSFCell photoCell=rowIndex.createCell(7+j);
photoCell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
photoCell.setCellFormula("HYPERLINK(\"" +wholePhotoUrl+ "\")");
, 。
, 。 style 、
HSSFCellStyle linkStyle = workbook.createCellStyle();
HSSFFont cellFont= workbook.createFont();
cellFont.setUnderline((byte) 1);
cellFont.setColor(HSSFColor.BLUE.index);
linkStyle.setFont(cellFont);
// style cell 。
cell.setCellStyle(linkStyle);
참고 글: Apache POI를 Excel에 삽입하는 두 가지 방법
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.