所需要的maven汇总:

<repositories><repository><id>com.e-iceblue</id><url>https://repo.e-iceblue.cn/repository/maven-public/</url></repository>
</repositories><dependencies><dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId><version>2.6.12</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml-schemas</artifactId><version>3.15</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>3.15</version></dependency><dependency><groupId>e-iceblue</groupId><artifactId>spire.presentation.free</artifactId><version>3.9.0</version></dependency><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.4</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.22</version></dependency>
</dependencies>

Pptx:
import com.spire.presentation.Presentation;
import content.Content;
import org.apache.poi.sl.usermodel.Shape;
import org.apache.poi.sl.usermodel.Slide;
import org.apache.poi.sl.usermodel.SlideShow;
import org.apache.poi.xslf.usermodel.XMLSlideShow;
import org.apache.poi.xslf.usermodel.XSLFSlide;
import org.apache.poi.xslf.usermodel.XSLFTable;
import org.apache.poi.xslf.usermodel.XSLFTableCell;
import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBody;
import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;
import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;
import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
import org.openxmlformats.schemas.presentationml.x2006.main.CTSlide;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.*;

public class ReadPptx  {
    public static String PPTXutil(String fileName, int limit,String readPhoto) {
        Presentation ppt = new Presentation();
        InputStream is=null;
        SlideShow slideShow = null;
        StringBuilder sb = new StringBuilder();
        String str = "";
        try {
            is = new FileInputStream(fileName);
            slideShow = new XMLSlideShow(is);
            FileInputStream in = new FileInputStream(fileName);
            XMLSlideShow xmlSlideShow = new XMLSlideShow(in);
            List<XSLFSlide> slides = xmlSlideShow.getSlides();
            for (XSLFSlide slide : slides) {
                CTSlide rawSlide = slide.getXmlObject();
                CTGroupShape gs = rawSlide.getCSld().getSpTree();
                CTShape[] shapes = gs.getSpArray();
                String next = "!!";
                sb.append(next);
                for (CTShape shape : shapes) {
                    CTTextBody tb = shape.getTxBody();
                    String nextline = " ";
                    sb.append(nextline);
                    if (null == tb) {
                        continue;
                    }
                    CTTextParagraph[] paras = tb.getPArray();
                    for (CTTextParagraph textParagraph : paras) {
                        CTRegularTextRun[] textRuns = textParagraph.getRArray();
                        for (CTRegularTextRun textRun : textRuns) {
                            sb.append(textRun.getT());
                        }
                    }
                }
            }
            sb.append("\n");
            sb.append("表格:");
            if (slideShow != null) {
                for (Slide slide : (List<Slide>) slideShow.getSlides()) {
                    List shapes = slide.getShapes();
                    for (int i = 0; i < shapes.size(); i++) {
                        Shape shape = (Shape) shapes.get(i);
                        if (shape instanceof XSLFTable) {
                            int rowSize = ((XSLFTable) shape).getNumberOfRows();
                            int columnSize = ((XSLFTable) shape).getNumberOfColumns();
                            for (int rowNum = 0; rowNum < rowSize; rowNum++) {
                                for (int columnNum = 0; columnNum < columnSize; columnNum++) {
                                    XSLFTableCell cell = ((XSLFTable) shape).getCell(rowNum, columnNum);
                                    String text = cell.getText();
                                    String line=" ";
                                    sb.append(text);
                                    sb.append(line);
                                }
                                sb.append(",");
                            }
                        }
                    }
                }
            }
            sb.delete(0, 3);
            sb.delete((sb.length()-1),sb.length());
            str = sb.toString();
            if (limit==0){
                System.out.println(str);
            }
            if (limit<str.length()){
                String string = str.substring(0,limit);
                System.out.println(string);
            }

xmlSlideShow.close();
            ppt.loadFromFile(fileName);
            for (int i = 0; i < ppt.getImages().getCount(); i++) {
                BufferedImage image = ppt.getImages().get(i).getImage();
                ImageIO.write(image, "PNG", new File(String.format(readPhoto + "PPTX"+"photo%1$s.jpg", i)));
            }
        } catch (FileNotFoundException e) {
        } catch (Exception e) {
        } finally {
            try {
                if (slideShow != null) {
                    slideShow.close();
                }
                if (is != null) {
                    is.close();
                }
            } catch (IOException e) {
            }
        }
        return str;
    }

private static void decoderBase64File(Map<String, String> map) {
    }

public static void main(String[] args) {

//fileName读取文件路径,reaePhoto为保存读取的图片路径
        PPTXutil("E://ss//666.pptx",0,"src//main//java//photo//");
    }
}

Ppt:
import com.spire.presentation.Presentation;
import content.Content;
import org.apache.poi.hslf.extractor.PowerPointExtractor;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class ReadPpt  {
    public static String PPTutil( String fileName,int limit,String readPhoto) {
        String str="";
        PowerPointExtractor test = null;
        InputStream in = null;
        try {
            in = new FileInputStream(fileName);
            test = new PowerPointExtractor(in);
            str = test.getText();
            if (limit == 0) {
                System.out.println(str);
            } else {
                str = str.substring(0, limit);
                System.out.println(str);
            }

Presentation photo = new Presentation();
            photo.loadFromFile(fileName);
            for (int i = 0; i < photo.getImages().getCount(); i++) {
                BufferedImage image = photo.getImages().get(i).getImage();
                ImageIO.write(image, "PNG", new File(String.format(readPhoto +"ppt"+"photo%1$s.jpg", i)));
            }
        }catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
                test.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return str;
    }

public static void main(String[] args) throws IOException {

//fileName读取文件路径,reaePhoto为保存读取的图片路径
        PPTutil("E:\\ss\\555.ppt",0,"src//main//java//photo//");
    }
}

Doc:

import content.Content;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.hwpf.model.PicturesTable;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Picture;
import org.apache.poi.hwpf.usermodel.Range;

import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class ReadDoc  {
    public static String wordutil(String fileName, int limit,String readPhoto){
        String str = "";
        InputStream input = null;
        Range range = null;
        HWPFDocument doc = null;
        List<Picture> pictsList = null;
        try {
            input = new FileInputStream(new File(fileName));
            WordExtractor wex = new WordExtractor(input);
            str = wex.getText();
            if (limit==0){
                System.out.println(str);
            }else {
                str  = str.substring(0,limit);
                System.out.println(str);
            }

doc = new HWPFDocument(new FileInputStream(fileName));
            range = doc.getRange();
            pictsList = new ArrayList();
            byte[] dataStream = doc.getDataStream();
            int numChar = range.numCharacterRuns();
            PicturesTable pTable = new PicturesTable(doc, dataStream, new byte[1024]);
            for (int j = 0; j < numChar; ++j) {
                CharacterRun cRun = range.getCharacterRun(j);
                boolean has = pTable.hasPicture(cRun);
                if (has) {
                    Picture picture = pTable.extractPicture(cRun, true);
                    pictsList.add(picture);
                }
            }
            int size = pictsList.size();
            for (int i = 0; i < size; ++i) {
                Picture p = pictsList.get(i);
                p.writeImageContent(new FileOutputStream(readPhoto+"/" +"DocPhoto"+ i+".jpg"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }
    public static void main(String[] args) {

//fileName读取文件路径,reaePhoto为保存读取的图片路径
        wordutil("E:\\ss\\333.doc",0,"src/main/java/photo");

}
}

Docx:

package word;

import content.Content;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.poi.xwpf.usermodel.XWPFPictureData;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

public class ReadDocx{

public static String wordutil(String fileName,int limit,String readPhoto){
        File file = new File(fileName);
        String str = "";
        try {
            FileInputStream fis = new FileInputStream(file);
            XWPFDocument xdoc = new XWPFDocument(fis);
            XWPFWordExtractor extractor = new XWPFWordExtractor(xdoc);
            String doc1 = extractor.getText();
            fis.close();
            str = doc1;
            if (limit==0){
                System.out.println(str);
            }else {
                String string = str.substring(0,limit);
                System.out.println(string);
            }

List<XWPFPictureData> picList = xdoc.getAllPictures();
            for (int i = 0; i < picList.size(); i++) {
                XWPFPictureData pic = picList.get(i);
                byte[] bytev = pic.getData();
                if (bytev.length > 300) {
                    FileOutputStream fos = new FileOutputStream(readPhoto+"Docx" + "photo"+i+".jpg");
                    fos.write(bytev);
                }
            }
            fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }

public static void main(String[] args) {

//fileName读取文件路径,reaePhoto为保存读取的图片路径
        wordutil("E:\\ss\\222.Docx", 0,"src/main/java/photo/");
    }
}

Xlsx:
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class XlsxReader {
    public static String searchExcelXlsx(String fileUrl){
        String str = new String();
        List<String> list = new ArrayList<>();
        File file = new File(fileUrl);
        try {
            InputStream is =new FileInputStream(file.getAbsolutePath());
            XSSFWorkbook hb = new XSSFWorkbook(is);
            System.out.println("表单数量:"+hb.getNumCellStyles());
            for (int i = 0; i < hb.getNumCellStyles(); i++) {
                Sheet sheet = hb.getSheetAt(i);
                int firstrow = sheet.getFirstRowNum();
                int lastrow = sheet.getLastRowNum();
                for (int j = firstrow; j < lastrow + 1; j++) {
                    Row row = sheet.getRow(j);
                    list.add("\n");
                    if (row != null) {
                        int firstcell = row.getFirstCellNum();
                        int lastcell = row.getLastCellNum();
                        for (int k = firstcell; k < lastcell; k++) {
                            Cell cell = row.getCell(k);
                            if (cell != null) {
                                list.add(cell.toString());
                                list.add("|");
                            }
                        }
                    }
                }
            }
            str= String.valueOf(list);
            str = str.replace(",","");
            System.out.println(str);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }

public static void main(String[] args) {

//fileName读取文件路径
        searchExcelXlsx("E://ss//999.xlsx");
    }
}

Xls:

import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

import java.io.*;

public class XlsReader {
    public static String excelutil(String fileName, int limit){
        StringBuilder builder = new StringBuilder("");
        String str ="";
        File file = new File(fileName);
        try {
            InputStream is = new FileInputStream(file.getAbsolutePath());
            Workbook wb = Workbook.getWorkbook(is);
            int sheet_size = wb.getNumberOfSheets();
            for (int index = 0; index < sheet_size; index++) {
                Sheet sheet = wb.getSheet(index);
                for (int i = 0; i < sheet.getRows(); i++) {
                    for (int j = 0; j < sheet.getColumns(); j++) {
                        str = sheet.getCell(j, i).getContents();
                        builder.append(str);
                        String test =" ";
                        builder.append(test);
                    }
                }
            }
            str= String.valueOf(builder);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (BiffException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        if (limit==0){
            System.out.println(builder);
        }else {
            str = builder.substring(0,limit);
            System.out.println(str);
        }
        return str;
    }
    public static void main(String[] args) {
        //fileName读取文件路径
        excelutil( "E:\\ss\\111.xls",0);
    }
}

Rtf:

import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.rtf.RTFEditorKit;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;public class ReadRtf {public static String RTFutil(String fileName) {String str = null;File file = new File(fileName);try {DefaultStyledDocument styledDoc = new DefaultStyledDocument();InputStream is = new FileInputStream(file);new RTFEditorKit().read(is, styledDoc, 0);str = new String(styledDoc.getText(0,styledDoc.getLength()).getBytes("ISO8859_1"),"GBK");}  catch (Exception e) {e.printStackTrace();}System.out.println(str);return str;}public static void main(String[] args) {RTFutil("E://ss//777.rtf");}

Java解析多种文件输出字符串以及图片(ppt、odc、odcx、pptx、xls、xlsx、rtf)相关推荐

  1. java获得src文件夹下的图片和 获得resource目录下的文件

    java获得src文件夹下的图片和 获得resource目录下的文件 1 获得src文件夹下的图片 文件位置 获得url代码 URL url= getClass().getClassLoader(). ...

  2. java 解析 csv 文件

    文章分类:JavaEye 一.貌似有bug,不行用 二.或 三. 的方法 Java代码   import java.io.BufferedReader; import java.io.FileInpu ...

  3. java解析Excel文件

    下文介绍java解析Excel文件的方案 前置准备 1.第三方jar包或者Maven配置 org.apache.poi的jar包 Maven配置如下 <groupId>org.apache ...

  4. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  5. java解析xml文件的几种方式(DOM解析)

    好久不用的东西,今天居然被面试官问到了.那既然这样,我们就一起回顾下java解析xml文件的几种方式吧. DOM解析 dom解析所需依赖是我们jdk自带的,所以只需要使用jdk为我们提供的接口即可上手 ...

  6. Java解析yaml文件

    Java解析yaml文件 1. 什么是yaml ? 2. 导入maven依赖 3. yaml 案例文件 4. 示例代码 5. 解析结果 1. 什么是yaml ? 参考下方链接 yaml快速入门 2. ...

  7. java 读取mp3,java 解析MP3文件

    java 解析MP3文件 首先需要知道的是,MP3文件的文件信息都放在文件最后的128个字节里面,这128个字节分别存储的信息如下: char Header[3];    /* 标签头必须是" ...

  8. java解析Excel文件的方法

    java解析Excel文件的方法 介绍 1.1 pom依赖 1.2 将数据流转化为可解析的Workbook类型文件 1.3 解析 1.4 Controller层接收前端传递的Excel文件(前端使用E ...

  9. 用正则表达式和java解析csv文件

    用正则表达式和java解析csv文件 作者:弹着钢琴设计  来源:博客园  发布时间:2009-06-15 18:31  阅读:337 次  原文链接   [收藏]   在解析csv文件之前,先来看看 ...

  10. java解析dxf文件_浅析JVM方法解析、创建和链接

    一:前言 上周末写了一篇文章<你知道Java类是如何被加载的吗?>,分析了HotSpot是如何加载Java类的,干脆趁热打铁,本周末再来分析下Hotspot又是如何解析.创建和链接类方法的 ...

最新文章

  1. js 设计模式与继承学习
  2. Vue菜鸟之路: 封装上传组件
  3. [转载]以及部分总结--Linux下创建单机ASM存储的Oracle实例的过程---感谢方总
  4. html安卓手机打开后只有半屏,宽度设置100%在移动端时变成一半
  5. mysql definer设置为root_mysql如何修改所有的definer
  6. 基于Matlab的三维胖射线追踪算法
  7. echarts树图节点垂直间距_铝模板的安装、拆除、节点、禁止做法详解
  8. 调试wifi简单记录
  9. Android 扩展ViewFlipper做导航页(一)
  10. 【2019杭电多校第七场1006=HDU6651】Final Exam(思维转换)
  11. 中国省市区乡县名称代码对照表
  12. 简单明了的告诉你什么是CPUID
  13. PHP Yar - 学习/实践
  14. button按钮的tittle 折行且居中显示
  15. OC 下载iCloud 图片和视频
  16. MOBA摄像机表现及交互式操作
  17. 波卡(Polkadot)创始人Gavin Wood眼中加密世界
  18. C300--HGU ONU 配置思路指导_方式1
  19. MFC Windows 程序设计[218]之网络打印机(附源码)
  20. pycharm出现low memory警告,卡顿

热门文章

  1. 【LOJ2863】「IOI2018」组合动作
  2. 极X客x时x间 《零基础学Python》视频教程分享
  3. QQ推广,QQ在线代码
  4. 编码 8421BCD 码的故事
  5. PyTorch深度学习(B站刘二大爷)第九讲 多分类问题
  6. Python_day04
  7. WordPress采集插件推荐都是免费采集插件
  8. IP地址中A类、B类、C类地址的区别
  9. 互联网思维到底是什么?
  10. bifrostv配置文件_数据同步配置 - 全量任务配置 - 《Bifrost v1.1.0 中文文档》 - 书栈网 · BookStack...