POI прочитать документ слова

Недавно я сделал функцию импорта слово документа, но из-за проекта аварийной ситуации, так что очень грубо. Наконец, в выходные дни, по своей собственной линии и для кода, который он хотел сделать общий инструмент, чтобы подготовиться к будущему, когда прямой клей используется.

очертание

POI происхождения

Apache POI является проектом с открытым исходным кодом, чьи первоначальные намерения обрабатывается на основе стандарта Office Open XML (OOXML) и Microsoft OLE 2 соединения Document Format (OLE2) различных форматов документов, и имеет поддержку для чтения и записи. JAVA, можно сказать, быть инструментом выбора в лечении ОФИСА документа.

HWPF и XWPF

POI действуют два основных модуля является слово документ HWPFи XWPF.
HWPFОперационная Microsoft Word 97 (-2007) файл стандартного ввода API. Он также поддерживает ограниченную только для чтения функции на старой версии Word 6 и Word 95 файлов.
XWPFMicrosoft Word 2007 документа является операционной стандарт начального API.

Чтение слово документ

На самом деле, POI для чтения и записи слова документа содержит ряд API доступен, только самую простого, чтобы прочитать текст по демо здесь для фотографий или чтения таблицы чтения позже обновления.


Maven зависимость

        <Зависимость>
            <Идентификатор_группы> com.google.guava </ идентификатор_группы>
            <Артефакт> гуавы </ артефакт>
            <Версия> 24,0-JRE </ версия>
        </ Зависимость>
        <Зависимость>
            <Идентификатор_группы> org.apache.poi </ идентификатор_группы>
            <Артефакта> пои-блокнотная </ артефакта>
            <Версия> 3,17 </ версия>
        </ Зависимость>
        <Зависимость>
            <Идентификатор_группы> org.apache.poi </ идентификатор_группы>
            <Артефакта> пои-OOXML </ артефакта>
            <Версия> 3,17 </ версия>
        </ Зависимость>
открытые статические <T> List <String> readWordFile (String путь) {
        List <String> contextList = Lists.newArrayList ();
        InputStream, поток = NULL;
        пытаться {
            поток = новый FileInputStream (новый файл (путь));
            если (path.endsWith ( "документ")) {
                HWPFDocument документ = новый HWPFDocument (поток);
                WordExtractor экстрактор = новый WordExtractor (документ);
                Строка [] contextArray = extractor.getParagraphText ();
                Arrays.asList (contextArray) .forEach (контекст -> contextList.add (CharMatcher.whitespace () removeFrom (контекст)).);
                extractor.close ();
                document.close ();
            } Еще если (path.endsWith ( "DOCX")) {
                XWPFDocument документ = новый XWPFDocument (поток) .getXWPFDocument ();
                Список <XWPFParagraph> paragraphList = document.getParagraphs ();
                paragraphList.forEach (пункт -> contextList.add (CharMatcher.whitespace () removeFrom (paragraph.getParagraphText ())).);
                document.close ();
            } Еще {
                LOGGER.debug ( «} {Этот файл не является словом документ», путь);
            }
        } Поймать (IOException е) {
            e.printStackTrace ();
        } наконец {
            если (нуль! = поток) попытка {
                stream.close ();
            } Поймать (IOException е) {
                e.printStackTrace ();
                LOGGER.debug ( «читать слово файл не удалось»);
            }
        }
        вернуться contextList;
    }

  

рекомендация

отwww.cnblogs.com/EarlyBridVic/p/12143272.html