POI 로 파워 포인트 파일 읽 기(ppt 와 pptx 버 전 호 환)

더 읽 기
호출 예시:
 
 
File powerPointFile = new File("D:\\temp.ppt");

//  PowerPoint         ,          
System.out.println(PowerPointFileUtil.extractTextFromPowerPointFile(powerPointFile , "," , ";"));

 
 
도구 종류 원본:
 
/**
 * BasePowerPointFileUtil.java
 * Copyright ® 2017    
 * All right reserved
 */

package org.aiyu.core.common.util.file.office;

import java.util.ArrayList;
import java.util.List;

import org.apache.poi.sl.usermodel.AutoShape;
import org.apache.poi.sl.usermodel.Shape;
import org.apache.poi.sl.usermodel.Slide;
import org.apache.poi.sl.usermodel.SlideShow;

/**
 * 

PowerPoint * *

PowerPoint , PowerPoint * * @author , [email protected] * @since AiyuCommonCore-1.0 * @version AiyuCommonCore-1.0 */ public abstract class BasePowerPointFileUtil { /** *

PowerPoint * * @param slideShow SlideShow * * @return * * @modify , 2017-01-18 */ protected static List readSlideShow(SlideShow slideShow) { List slideList = null; if (slideShow != null) { slideList = new ArrayList(); List slides = slideShow.getSlides(); for (int i = 0 ; i < slides.size() ; i++) { slideList.add(BasePowerPointFileUtil.readSlide((Slide) slides.get(i))); } } return slideList; } /** *

Slide * * @param slide Slide * * @return Slide * * @modify , 2017-01-18 */ protected static List readSlide(Slide slide) { List shapeList = null; if (slide != null) { shapeList = new ArrayList(); List shapes = slide.getShapes(); for (int i = 0 ; i < shapes.size() ; i++) { shapeList.add(BasePowerPointFileUtil.readShape((Shape) shapes.get(i))); } } return shapeList; } /** *

* * @param shape Slide * * @return * * @modify , 2017-01-18 */ protected static Object readShape(Shape shape) { String returnValue = null; if (shape != null) { if (shape instanceof AutoShape) { try { returnValue = ((AutoShape) shape).getText(); } catch (Exception ex) { ex.printStackTrace(); } } } return returnValue; } }


PowerPoint 2003 버 전 도구 클래스:
 
/**
 * PowerPoint2003FileUtil.java
 * Copyright ® 2010    
 * All right reserved
 */

package org.aiyu.core.common.util.file.office;

import java.io.File;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hslf.usermodel.HSLFSlideShow;
import org.apache.poi.hslf.usermodel.HSLFSlideShowImpl;
import org.apache.poi.sl.usermodel.SlideShow;

/**
 * 

PowerPoint2003 * *

PowerPoint2003 , PowerPoint * * @author , [email protected] * @since AiyuCommonCore-1.0 * @version AiyuCommonCore-1.0 */ public abstract class PowerPoint2003FileUtil extends BasePowerPointFileUtil { /** *

PowerPoint * * @param powerPointFile PowerPoint * @param shapeSeparator Shape * @param slideSeparator Slide * * @return * * @modify , 2017-01-18 */ protected static String extractTextFromPowerPointFile(File powerPointFile , String shapeSeparator , String slideSeparator) { StringBuffer returnValue = new StringBuffer(); if (powerPointFile != null && slideSeparator != null && shapeSeparator != null) { if (powerPointFile.isFile()) { try { SlideShow slideShow = new HSLFSlideShow(new HSLFSlideShowImpl(powerPointFile.getCanonicalPath())); Iterator slideIterator = PowerPoint2003FileUtil.readSlideShow(slideShow).iterator(); // Slide while (slideIterator.hasNext()) { Iterator shapeIterator = ((List) slideIterator.next()).iterator(); // Shape while (shapeIterator.hasNext()) { Object shapeValue = shapeIterator.next(); if (shapeValue != null) { returnValue.append((String) shapeValue); if (shapeIterator.hasNext()) { returnValue.append(shapeSeparator); } } } if (slideIterator.hasNext()) { returnValue.append(slideSeparator); } } } catch (Exception ex) { ex.printStackTrace(); } } } return StringUtils.trimToNull(returnValue.toString()); } }

 
PowerPoint 2007 버 전 도구 클래스:
 
/**
 * PowerPoint2007FileUtil.java
 * Copyright ® 2017    
 * All right reserved
 */

package org.aiyu.core.common.util.file.office;

import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
import java.util.List;

import org.apache.commons.lang3.StringUtils;
import org.apache.poi.xslf.usermodel.XMLSlideShow;

/**
 * 

PowerPoint2007 * *

PowerPoint2007 , PowerPoint * * @author , [email protected] * @since AiyuCommonCore-1.0 * @version AiyuCommonCore-1.0 */ public abstract class PowerPoint2007FileUtil extends BasePowerPointFileUtil { /** *

PowerPoint * * @param powerPointFile PowerPoint * @param shapeSeparator Shape * @param slideSeparator Slide * * @return * * @modify , 2017-01-18 */ protected static String extractTextFromPowerPointFile(File powerPointFile , String shapeSeparator , String slideSeparator) { StringBuffer returnValue = new StringBuffer(); if (powerPointFile != null && slideSeparator != null && shapeSeparator != null) { if (powerPointFile.isFile()) { try { XMLSlideShow slideShow = new XMLSlideShow(new FileInputStream(powerPointFile)); Iterator slideIterator = PowerPoint2007FileUtil.readSlideShow(slideShow).iterator(); // Slide while (slideIterator.hasNext()) { Iterator shapeIterator = ((List) slideIterator.next()).iterator(); // Shape while (shapeIterator.hasNext()) { Object shapeValue = shapeIterator.next(); if (shapeValue != null) { returnValue.append((String) shapeValue); if (shapeIterator.hasNext()) { returnValue.append(shapeSeparator); } } } if (slideIterator.hasNext()) { returnValue.append(slideSeparator); } } } catch (Exception ex) { ex.printStackTrace(); } } } return StringUtils.trimToNull(returnValue.toString()); } }

 
통합 호출 도구 클래스:
 
/**
 * PowerPointFileUtil.java
 * Copyright ® 2017    
 * All right reserved
 */

package org.aiyu.core.common.util.file.office;

import java.io.File;

import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang3.StringUtils;

/**
 * 

PowerPoint * *

PowerPoint , PowerPoint * * @author , [email protected] * @since AiyuCommonCore-1.0 * @version AiyuCommonCore-1.0 */ public abstract class PowerPointFileUtil extends BasePowerPointFileUtil { /** *

PowerPoint * * @param powerPointFile PowerPoint * @param shapeSeparator Shape * @param slideSeparator Slide * * @return * * @modify , 2017-02-06 */ public static String extractTextFromPowerPointFile(File powerPointFile , String shapeSeparator , String slideSeparator) { String resultText = null; if (powerPointFile != null && powerPointFile.exists()) { String extension = FilenameUtils.getExtension(powerPointFile.getName()); if (StringUtils.equalsIgnoreCase("ppt" , extension)) { //Office2003 resultText = PowerPoint2003FileUtil.extractTextFromPowerPointFile(powerPointFile , shapeSeparator , slideSeparator); } else if (StringUtils.equalsIgnoreCase("pptx" , extension)) { //Office2007 resultText = PowerPoint2003FileUtil.extractTextFromPowerPointFile(powerPointFile , shapeSeparator , slideSeparator); } else { // } } return resultText; } }

 
통합 호출 도구 클래스 는 파일 확장자(PPT 와 PPTX,대소 문자 구분 없 음)를 통 해 파일 버 전 을 판단 하 며 당분간 더 좋 은 방법 을 생각 하지 못 했 습 니 다.이 도구 클래스 사용 POI3.15 목표 기기 가 OFFICE 소프트웨어 를 설치 하지 않 아 도 파일 읽 기와 쓰기 가 가능 합 니 다.
  • PowerPointFileUtil.rar (3.6 KB)

  • 다운로드 횟수:23

    좋은 웹페이지 즐겨찾기