import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.model.StyleDescription; import org.apache.poi.hwpf.model.StyleSheet; import org.apache.poi.hwpf.usermodel.Paragraph; import org.apache.poi.hwpf.usermodel.Range; import java.io.*; public class WordToDB { public static void main(String[] args) throws Exception { String filePath = "***.doc"; printWord(filePath); } public static void printWord(String filePath) throws IOException { InputStream is = new FileInputStream(filePath); HWPFDocument doc = new HWPFDocument(is); Range r = doc.getRange();// 文檔范圍 // System.out.println("段落數:"+r.numParagraphs()); for (int i = 0; i < r.numParagraphs(); i++) { Paragraph p = r.getParagraph(i);// 獲取段落
int numStyles = doc.getStyleSheet().numStyles(); int styleIndex = p.getStyleIndex(); if (numStyles > styleIndex) { StyleSheet style_sheet = doc.getStyleSheet(); StyleDescription style = style_sheet.getStyleDescription(styleIndex); String styleName = style.getName();// 獲取每個段落樣式名稱 // 獲取自己理想樣式的段落文本信息 String styleLoving = "級別2:四號黑體 20磅 前18 后12 左對齊"; if (styleName != null && styleName.contains(styleLoving)) { String text = p.text();// 段落文本 System.out.println(text); } } } doc.close(); } }