poi Excel의 그림 위치 읽기

1914 단어 poiExcel
최신 Poi 패키지 다운로드 poi-bin-3.12-20150511.zip, 안에 xlsx 그림을 읽는 새로운 방법이 있습니다!
지난주부터 엑셀 가져오기를 부추겨 최신 포이 패키지를 다운로드한 결과 엑셀 파일에 그림이 있었다.사진을 처리하는 것은 정말 어려운 일이다. 인터넷 검색을 통해 처음에 HSSFSheet류가 그림을 처리하는 예를 발견했지만 xlsx 파일이 사용할 수 있는 것이 아니다. 그 중에서 한 가지 방법에 대한 HSSFSheet.getDrawingEscherAggregate()가 표시됩니다.
쪽지: 스티커 1:http://www.cnblogs.com/shwen99/archive/2010/09/13/1824896.html
나중에 xls와 xlsx가 그림을 읽는 위치를 겸용하는 스티커를 찾았는데 이 스티커는 문제를 해결할 수 있다.
쪽지: 스티커 2:http://blog.csdn.net/delongcpp/article/details/8833995
하지만 그 중 하나는 XSSFSheet입니다.getRelations (), 컬렉션을 찾아서 이 컬렉션이 무엇인지 궁금합니다.내 프로젝트에서 한 원소만 발견했는데 작업표 그림을 꺼내서 이 집합의 첫 번째 원소만 가져오면 되는지 의문이 든다. (for 순환하는 코드를 쓰지 않아도 된다. 게으름~)?인터넷에서 공식api 문서를 찾았는데 찾아보니 공식문서에 XSSFSheet에 방법이 있다고 쓰여 있어요. getDrawing Patriarch(), 스티커 1 같은 방법이에요. 반환된 결과는 스티커 2가 필요한 대상입니다.전에도 모든 방법을 다 해봤는데 기억에는 이 방법이 없었고 프로젝트에서 해봤는데 역시 없었다.그래서 새로운 버전이 있는 건지 의심스럽습니다. 제가 지난주에 최신판 3.11을 다운로드받았기 때문입니다. 하지만 서프라이즈를 기대하는 마음으로 인터넷에 접속했습니다.역시, 최신 버전은 3.12, 5월 11일 업데이트!바로 어제!하하, 정말 졸고 싶을 때 베개를 배달하러 왔어요.이제 xlsx 그림을 더 편리하게 처리할 수 있습니다!
다음은 내가 쓴 방법 중 하나이다.
     /**
	 *  , null。
	 * 
	 * @param sheet
	 *             
	 * @param cell
	 *             
	 * @return  
	 */
	public static String getPictureNameOfCell(Sheet sheet, Cell cell) {
		int cellRowIndex = cell.getRowIndex();
		int cellColIndex = cell.getColumnIndex();
		if (sheet instanceof XSSFSheet) {
			XSSFSheet xSheet = (XSSFSheet) sheet;
			XSSFDrawing drawing = xSheet.getDrawingPatriarch();
			List<XSSFShape> xShapeList = drawing.getShapes();
			for (int i = 0; i < xShapeList.size(); i++) {
				XSSFPicture xPicture = (XSSFPicture) xShapeList.get(i);
				XSSFClientAnchor xAnchor = xPicture.getPreferredSize();
				if (xAnchor.getRow1() == cellRowIndex && xAnchor.getCol1() == cellColIndex) {
					return xPicture.getPictureData().getPackagePart().getPartName().getName();
				}
			}
		}
		return null;
	}

좋은 웹페이지 즐겨찾기