티스토리 뷰
728x90
출처 : Apache POI - the Java API for Microsoft Documents
java - Get an image and its position from excel file using Apache POI
POI로 엑셀 파일 열기
import java.io.File; import java.io.FileInputStream; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class TestPoiMain { public static void main(String[] args) throws Exception { // String fileName = "test1.xlsx"; // File xlsFile = new File(fileName); Workbook workbook = null; try { if (xlsFile.exists()) { FileInputStream inputStream = new FileInputStream(xlsFile); workbook = new XSSFWorkbook(inputStream); System.out.println(workbook); } } finally { if (workbook != null) workbook.close(); } } }
POI로 Excel 파일 내에 이미지 추출
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.poi.ss.usermodel.ClientAnchor; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFDrawing; import org.apache.poi.xssf.usermodel.XSSFPicture; import org.apache.poi.xssf.usermodel.XSSFPictureData; import org.apache.poi.xssf.usermodel.XSSFShape; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class TestPoiMain { public static void main(String[] args) throws Exception { // String fileName = "test1.xlsx"; String tarDir = "c:\\test"; // File xlsFile = new File(fileName); Workbook workbook = null; try { if (xlsFile.exists()) { FileInputStream inputStream = new FileInputStream(xlsFile); workbook = new XSSFWorkbook(inputStream); XSSFSheet sheet = (XSSFSheet) workbook.getSheetAt(0); XSSFDrawing drawing = sheet.createDrawingPatriarch(); // I know it is ugly, actually you get the actual instance here for (XSSFShape shape : drawing.getShapes()) { if (shape instanceof XSSFPicture) { XSSFPicture picture = (XSSFPicture) shape; if (picture.getPictureData()==null) { System.out.println("사진 Path 사용"); continue; } XSSFPictureData xssfPictureData = picture.getPictureData(); ClientAnchor anchor = picture.getPreferredSize(); int row1 = anchor.getRow1(); int row2 = anchor.getRow2(); int col1 = anchor.getCol1(); int col2 = anchor.getCol2(); System.out.println("Row1: " + row1 + " Row2: " + row2); System.out.println("Column1: " + col1 + " Column2: " + col2); // Saving the file String ext = xssfPictureData.suggestFileExtension(); byte[] data = xssfPictureData.getData(); FileOutputStream out = new FileOutputStream(String.format("%s\\%s_%d_%d.%s", tarDir, sheet.getSheetName(), row1, col1, ext)); out.write(data); out.close(); } } } } finally { if (workbook != null) workbook.close(); } } }
댓글
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 지스타2007
- ffmpeg
- KOBA
- Linux
- Xcode
- flex
- 송주경
- 튜닝쇼 2008
- BPI-M4
- koba2010
- Spring
- Java
- 레이싱모델 익스트림 포토 페스티벌
- Spring MVC
- JavaScript
- ble
- Delphi
- 전예희
- ubuntu
- 동경
- Delphi Tip
- SAS
- android
- 서울오토살롱
- Mac
- MySQL
- NDK
- oracle
- 일본여행
- sas2009
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함