반응형
# Naver Search API 활용 Excel에 image 저장하기
기존에 존재하는 Excel 파일을 읽어 오는게 아닌, 엑셀 파일을 만들고 원하는 위치에 이미지를 넣어 생성하는 방식.준비물 : 엑셀에 삽입할 이미지. (pic.jpg)## 작업소스
import java.io.FileInputStream;
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.Cell;
import org.apache.poi.ss.usermodel.ClientAnchor;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.Drawing;
import org.apache.poi.ss.usermodel.Picture;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.util.IOUtils;
public class Project03_B {
public static void main(String[] args) {
try {
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("sample Excel"); // Excel 시트 생성 및 시트명 입력(sample Excel)
InputStream inputStream = new FileInputStream("pic.jpg"); // 이미지 파일 읽기.
byte[] bytes = IOUtils.toByteArray(inputStream); // 이미지 파일 byte 단위로 읽어서 저장.
int pictureIdx = wb.addPicture(bytes, Workbook.PICTURE_TYPE_JPEG); // 이미지 번지 저장.
inputStream.close();
CreationHelper helper = wb.getCreationHelper(); // Workbook에 뭔가를 생성할 수 있도록 하는 헬퍼.
Drawing drawing = sheet.createDrawingPatriarch(); // 시트에 그림을 그릴수 있도록 해줌.
ClientAnchor anchor = helper.createClientAnchor(); // 위치 잡기용.
anchor.setCol1(1); // Column : B
anchor.setRow1(2); // Row : 3
anchor.setCol2(2); // Column : C
anchor.setRow2(3); // Row : 4
Picture pict = drawing.createPicture(anchor, pictureIdx); // 위치에 이미지 그리기.
// Cell 생성하여 이미지 크기 설정.
Cell cell = sheet.createRow(2).createCell(1);
int widthUnits = 20*256; // Excel 한 칸을 기준, 하나의 픽셀 데이터가 넓이 1/256 수준.
sheet.setColumnWidth(1, widthUnits);
short heightUnits = 120*20; // Excel 한 칸을 기준, 하나의 픽셀 데이터가 1/20 수준.
cell.getRow().setHeight(heightUnits);
// Excel 파일 저장.
FileOutputStream fileOut = new FileOutputStream("myFile.xls");
wb.write(fileOut);
fileOut.close();
System.out.println("성공!");
} catch (IOException e) {
e.printStackTrace();
}
}
}
## 결과물
반응형
'인프런 강의 학습 > Java TPC 실전' 카테고리의 다른 글
Naver Search API 활용 도서정보를 입력하여 ISBN, IMAGE 검출하기 (0) | 2022.07.20 |
---|---|
Naver Search API 활용 Excel에서 Cell의 데이터타입 알아보기 (0) | 2022.07.11 |
API활용_Naver Search API 활용 Excel파일 읽기 (0) | 2022.07.04 |
API활용_Jsoup API 이용한 크롤링(GUI 버전) (0) | 2022.06.22 |
API활용_Jsoup API 이용한 크롤링(리소스 다운로드) (0) | 2022.06.21 |