반응형

apache poi를 이용하면 엑셀에서도 많은 기능을 사용할 수 있습니다. 그 중에서도 이번에 사용해 볼 기능은 이미지 생성입니다. 이미지를 생성하기 위해서는 XSSFClientAnchor과 XSSFPicture를 사용해야합니다.
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.util.IOUtils; import org.apache.poi.xssf.usermodel.XSSFClientAnchor; import org.apache.poi.xssf.usermodel.XSSFDrawing; import org.apache.poi.xssf.usermodel.XSSFPicture; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class Main { public static void main(String[] args) throws IOException { XSSFWorkbook workBook = new XSSFWorkbook(); CellStyle defaultStyle = workBook.createCellStyle(); // 시트 생성 및 셀 높이 설정 XSSFSheet sheet = workBook.createSheet(); Row row = sheet.createRow(0); String filepath = "C:/EXCEL_TEMP/test.jpg"; InputStream is = new FileInputStream(filepath); byte[] bytes = IOUtils.toByteArray(is); int pictureindex = workBook.addPicture(bytes, HSSFWorkbook.PICTURE_TYPE_JPEG); XSSFClientAnchor anchor = new XSSFClientAnchor(); XSSFDrawing drawing = sheet.createDrawingPatriarch(); anchor.setCol1(0); anchor.setRow1(0); // 이미지 그리기 XSSFPicture pic = drawing.createPicture(anchor, pictureindex); pic.resize(); try { File xlsFile = new File("C:/EXCEL_TEMP/test.xls"); FileOutputStream fileOut = new FileOutputStream(xlsFile); workBook.write(fileOut); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { workBook.close(); is.close(); } } }

반응형
'개발 & 데이터베이스 > JAVA' 카테고리의 다른 글
[JAVA] 자바로 폴더, 파일 생성하기 (0) | 2022.03.02 |
---|---|
[JAVA] 배열 생성과 선언 사용하는 방법 (0) | 2022.02.28 |
[JAVA] apache poi로 엑셀 생성하기 #2 셀 병합하기 (0) | 2021.12.14 |
[JAVA] apache poi로 엑셀 생성하는 방법 #1 표 만들기 (0) | 2021.12.12 |
[JAVA] 자바의 기초 #2 버퍼 입출력스트림 (Buffered ···) 개념 및 사용 방법 (0) | 2021.12.02 |