导包:
<dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-scratchpad</artifactId> <version>3.17</version> </dependency> </dependencies>
代码:
import lombok.extern.slf4j.Slf4j; import org.apache.poi.hwpf.extractor.WordExtractor; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.usermodel.XWPFParagraph; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.multipart.MultipartFile; import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @Slf4j @Component public class FileParsingUtil { public static Map<String, String> getFileNameAndContent(MultipartFile file) { String title = ""; String content = ""; Map map = new HashMap<String, String>(); try { InputStream inputStream = file.getInputStream(); String fileName = file.getOriginalFilename(); if (!fileName.endsWith("doc") && !fileName.endsWith("docx")) { return map; } if (fileName.endsWith("doc")) { WordExtractor xwpfWordExtractor = new WordExtractor(inputStream); String[] paragraphText = xwpfWordExtractor.getParagraphText(); title = paragraphText[0].trim(); for (int i = 1; i < paragraphText.length; i++) { content = content + paragraphText[i].trim(); } } if (fileName.endsWith("docx")) { XWPFDocument doc = new XWPFDocument(file.getInputStream()); List<XWPFParagraph> paras=doc.getParagraphs(); title = paras.get(0).getText().trim(); for (int i = 1; i < paras.size(); i++) { content = content + paras.get(i).getText().trim(); } } map.put("title", title); map.put("content", content); log.error("word文档解析成功"); } catch (Exception e) { e.getMessage(); log.error("word文档解析失败"); } return map; } }
因篇幅问题不能全部显示,请点此查看更多更全内容