亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java使用poi讀取ppt文件和poi讀取excel、word示例

2019-11-26 15:36:25
字體:
來源:轉載
供稿:網友

Apache的POI項目可以用來處理MS Office文檔,codeplex上還有一個它的.net版本。POI項目可創建和維護操作各種基于OOXML和OLE2文件格式的Java API。大多數MS Office都是OLE2格式的。POI通HSMF子項目來支持Outlook,通過HDGF子項目來支持Visio,通過HPBF子項目來支持Publisher。

使用POI抽取Word簡單示例:

要引入poi-3.7.jat和poi-scratchpad-3.7.ajr這兩個包。

復制代碼 代碼如下:

package msoffice;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.extractor.WordExtractor;
import org.apache.poi.hwpf.usermodel.CharacterRun;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.apache.poi.hwpf.usermodel.Section;

public class Word {

    // 直接抽取全部內容
    public static String readDoc1(InputStream is) throws IOException {
        WordExtractor extractor = new WordExtractor(is);
        return extractor.getText();
    }

    //分章節Section、段落Paragraph、字符串CharacterRun抽取
    public static void readDoc2(InputStream is) throws IOException {
        HWPFDocument doc=new HWPFDocument(is);
        Range r=doc.getRange();
        for(int x=0;x<r.numSections();x++){
            Section s=r.getSection(x);
            for(int y=0;y<s.numParagraphs();y++){
                Paragraph p=s.getParagraph(y);
                for(int z=0;z<p.numCharacterRuns();z++){
                    CharacterRun run=p.getCharacterRun(z);
                    String text=run.text();
                    System.out.print(text);
                }
            }
        }
    }

    public static void main(String[] args) {
        File file = new File("/home/orisun/1.doc");
        try {
            FileInputStream fin = new FileInputStream(file);
            String cont = readDoc1(fin);
            System.out.println(cont);
            fin.close();
            fin = new FileInputStream(file);
            readDoc2(fin);
            fin.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

POI抽取PPT示例:

復制代碼 代碼如下:

package msoffice;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.extractor.PowerPointExtractor;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.SlideShow;

public class PPT {

    //直接抽取幻燈片的全部內容
    public static String readDoc1(InputStream is) throws IOException{
        PowerPointExtractor extractor=new PowerPointExtractor(is);
        return extractor.getText();
    }

    //一張幻燈片一張幻燈片地讀取
    public static void readDoc2(InputStream is) throws IOException{
        SlideShow ss=new SlideShow(new HSLFSlideShow(is));
        Slide[] slides=ss.getSlides();
        for(int i=0;i<slides.length;i++){
            //讀取一張幻燈片的標題
            String title=slides[i].getTitle();
            System.out.println("標題:"+title);
            //讀取一張幻燈片的內容(包括標題)
            TextRun[] runs=slides[i].getTextRuns();
            for(int j=0;j<runs.length;j++){
                System.out.println(runs[j].getText());
            }
        }
    }

    public static void main(String[] args){
        File file = new File("/home/orisun/2.ppt");
        try{
            FileInputStream fin=new FileInputStream(file);
            String cont=readDoc1(fin);
            System.out.println(cont);
            fin.close();
            fin=new FileInputStream(file);
            readDoc2(fin);
            fin.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}

Excel文件由多個Workbook組成,一個Workbook由多個Sheet組成。

POI抽取Excel簡單示例:

復制代碼 代碼如下:

package msoffice;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Iterator;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.extractor.ExcelExtractor;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Row;

public class Excel {

    //直接讀取Excel的全部內容
    public static String readDoc1(InputStream is)throws IOException{
        HSSFWorkbook wb=new HSSFWorkbook(new POIFSFileSystem(is));
        ExcelExtractor extractor=new ExcelExtractor(wb);
        extractor.setFormulasNotResults(false);
        extractor.setIncludeSheetNames(true);
        return extractor.getText();
    }

    //讀取時細化到Sheet、行甚至單元格
    public static double getAvg(InputStream is)throws IOException{
        HSSFWorkbook wb=new HSSFWorkbook(new POIFSFileSystem(is));
        //獲取第一張sheet
        HSSFSheet sheet=wb.getSheetAt(0);
        double molecule=0.0;
        double denominator=0.0;
        //按行遍歷sheet
        Iterator<Row> riter=sheet.rowIterator();
        while(riter.hasNext()){
            HSSFRow row=(HSSFRow)riter.next();
            HSSFCell cell1=row.getCell(4);
            HSSFCell cell2=row.getCell(4);
            if(cell1.getCellType()!=HSSFCell.CELL_TYPE_NUMERIC){
                System.err.println("數字類型錯誤!");
                System.exit(-2);
            }
            if(cell2.getCellType()!=HSSFCell.CELL_TYPE_NUMERIC){
                System.err.println("數字類型錯誤!");
                System.exit(-2);
            }
            denominator+=Double.parseDouble(cell2.toString().trim());
            molecule+=Double.parseDouble(cell2.toString().trim())*Float.parseFloat(cell1.toString().trim());
        }
        return molecule/denominator;
    }

    public static void main(String[] args){
        File file = new File("/home/orisun/3.xls");
        try{
            FileInputStream fin=new FileInputStream(file);
            String cont=readDoc1(fin);
            System.out.println(cont);
            fin.close();
            fin=new FileInputStream(file);
            System.out.println("加權平均分"+getAvg(fin));
            fin.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产国产精品人在线视| 色老头一区二区三区| 欧美另类69精品久久久久9999| 亚洲精品电影网站| 亚洲无亚洲人成网站77777| 久久天天躁狠狠躁夜夜躁2014| 国产高清视频一区三区| 69久久夜色精品国产69| 国产精品福利久久久| 国产精品偷伦视频免费观看国产| www亚洲欧美| 2019精品视频| 亚洲欧洲在线免费| 日本a级片电影一区二区| 狠狠躁18三区二区一区| 亚洲成**性毛茸茸| 亚洲一区精品电影| 欧美精品免费播放| 精品成人乱色一区二区| 亚洲一区二区免费| 亚洲一区亚洲二区亚洲三区| 久久久久久久激情视频| 亚洲片在线资源| 精品久久久国产| 亚洲天堂第一页| 日本久久久久久久| 久久国产精品久久久久| 在线免费观看羞羞视频一区二区| 欧美丝袜一区二区| 欧美成人h版在线观看| 国产精品久久久久久久久久久新郎| 欧美色道久久88综合亚洲精品| 国产亚洲一区二区在线| 亚洲国产91精品在线观看| 欧美成人激情视频免费观看| 成人免费看片视频| 欧美精品九九久久| 欧美激情videoshd| 国产精品成人在线| 青草青草久热精品视频在线网站| 久久成人18免费网站| 欧美日韩国产一区二区三区| 日本成人黄色片| 日韩亚洲欧美中文在线| 国产激情综合五月久久| 亚洲精品久久久久中文字幕二区| 在线视频一区二区| 91av国产在线| 国模精品一区二区三区色天香| 久久手机免费视频| 国产在线视频欧美| 国产一区二区av| 久久91精品国产| 日韩电影中文字幕| 久久97精品久久久久久久不卡| 国产91色在线|| 欧美日韩中文字幕综合视频| 精品国产欧美一区二区五十路| 成人激情免费在线| 91精品久久久久久久久不口人| 亚洲一区二区免费在线| 国产精品成人av性教育| 亚洲视频在线播放| 美日韩在线视频| 中文字幕av一区中文字幕天堂| 国产精品久久久久久久久久| 国产专区欧美专区| 久久久久久亚洲| 欧美久久久精品| 亚洲欧美自拍一区| 日韩中文在线中文网在线观看| 日韩中文综合网| 成人啪啪免费看| 国产香蕉一区二区三区在线视频| 日韩在线中文视频| 在线观看欧美日韩国产| 国产成人精彩在线视频九色| 欧美精品一区在线播放| 色综合久综合久久综合久鬼88| 国外日韩电影在线观看| 少妇激情综合网| 日韩天堂在线视频| 亚洲午夜未满十八勿入免费观看全集| 国产精品视频一区二区高潮| 欧美激情精品久久久久久变态| 中文字幕亚洲一区二区三区五十路| 国产精品a久久久久久| 国产在线视频欧美| 国产一区二区三区在线视频| 日本最新高清不卡中文字幕| 亚洲国产97在线精品一区| 精品久久久久久久大神国产| 欧美在线播放视频| 夜夜嗨av一区二区三区免费区| 欧美在线观看日本一区| 久久视频在线看| 国产精品极品美女粉嫩高清在线| 国产精品爽爽爽爽爽爽在线观看| 亚洲高清一二三区| 国产成人精品999| 欧美肥婆姓交大片| 日韩免费观看网站| 日韩在线小视频| 最新69国产成人精品视频免费| 亚洲剧情一区二区| 91视频免费网站| 91牛牛免费视频| 在线观看国产成人av片| 国产福利精品视频| 97国产成人精品视频| 国产日韩欧美在线视频观看| 国产精品一二三视频| 日本韩国在线不卡| 亚洲永久在线观看| 91av在线精品| 日韩成人在线视频| 国产主播欧美精品| 日韩成人在线网站| 久久亚洲电影天堂| 久久久成人精品视频| 久久免费精品日本久久中文字幕| 91在线无精精品一区二区| 久久久久久综合网天天| 欧美性xxxxxxx| 精品视频在线播放免| 欧美成人免费在线观看| 国产精品久久久久av免费| 国内精品久久久久久久久| 欧美在线激情视频| 91久久久在线| 亚洲码在线观看| 亚洲成人av在线| 欧美精品久久久久久久久| 日韩欧美一区二区三区久久| 精品国产区一区二区三区在线观看| 国产精品久久久久久久久久久久| 欧美日韩在线观看视频| 久久久精品视频在线观看| 欧美久久精品午夜青青大伊人| 亚洲美女性视频| 亚洲美女av黄| 国内精品中文字幕| 欧美精品久久久久a| 97超级碰在线看视频免费在线看| 国产精品永久在线| 亚洲精品日韩欧美| 91社区国产高清| 欧美视频免费在线观看| 亚洲成人av资源网| 国产性色av一区二区| 国产精品久久久久久一区二区| 91免费在线视频网站| 亚洲精品一区av在线播放| 日韩在线观看免费网站| 国产91精品久久久久| 国产亚洲欧洲高清| 欧美性xxxxxxx| 欧美精品在线网站| 久久综合久中文字幕青草| 91中文精品字幕在线视频| 一区二区三区黄色| 国产在线观看精品一区二区三区| 亚洲人成电影在线观看天堂色| 色琪琪综合男人的天堂aⅴ视频|