簡體   English   中英

用Java逐行讀取docx文件

[英]Read docx file line by line in Java

我正在嘗試使用Apache poi或docx4j解析docx文件,但我需要逐行將文本存儲為原樣。 我沒有設法找到一種方法來實現這一目標,而不是找到段落文本。 您能為我提供文檔,鏈接,解決方案或任何對我有幫助的東西,因為我還沒有找到任何可以為我提供實用解決方案的東西。

提前致謝!

使用DOCX4J,您可以使用以下代碼打印每個docx文本內容,也許對您的目的有用:

public static void main(String[] args) throws Exception{

    TestPrintLines test = new TestPrintLines(); 
    String inputfilepath = System.getProperty("user.dir") + "/";
    File file = new File(inputfilepath+"yourFile.docx");
    WordprocessingMLPackage wordMLPackage = WordprocessingMLPackage.load(file);
    List<Object> texts= getAllelementObjects(wordMLPackage.getMainDocumentPart(),Text.class);
    test.printLines(texts);
}

static public  List<Object> getAllelementObjects(Object obj,Class<?> toSearch) {
    List<Object> result = new ArrayList<Object>();
    if (obj instanceof JAXBElement)
        obj = ((JAXBElement<?>) obj).getValue();

    if (obj.getClass().equals(toSearch))
        result.add(obj);
    else if (obj instanceof ContentAccessor) {
        List<?> children = ((ContentAccessor) obj).getContent();
        for (Object child : children) {
            result.addAll(getAllelementObjects(child, toSearch));
        }

    }
    return result;
}

static public void printLines(List<Object> objectsList){
    for(int i = 0; i<objectsList.size(); i++) {         
        Object text = objectsList.get(i);
        Text textElement = (Text) text;
        System.out.println(textElement.getValue());
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM