Недавно я сделал функцию импорта слово документа, но из-за проекта аварийной ситуации, так что очень грубо. Наконец, в выходные дни, по своей собственной линии и для кода, который он хотел сделать общий инструмент, чтобы подготовиться к будущему, когда прямой клей используется.
очертание
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 файлов.
XWPF
Microsoft 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; }