Как создать индекс в текстовом файле программно? - PullRequest
0 голосов
/ 27 июня 2018

Предположим, есть таблица из тысяч элементов данных, и нам нужно создать индекс любого из элементов. Итак, как программно создать индекс в файле Docx, т.е. с помощью docx4j.

1 Ответ

0 голосов
/ 02 июля 2018
 MainDocumentPart mdp = word.getMainDocumentPart();
        String textXpath = "//w:t";
        List<Object> textNodes= mdp.getJAXBNodesViaXPath(textXpath, true);
        c=0;
        for (Object obj : textNodes)
        {
            Text text = (Text) ((JAXBElement<?>) obj).getValue();       
            textValue = text.getValue();
         String[] words = textValue.split("\\W+");
            for (String word : words) 
            {
             word = word.toLowerCase();
             List<Integer> list = occurences.get(word);

             if (list == null) 
             {
                 list = new ArrayList<Integer>();
                 occurences.put(word, list);
             }

             list.add(c);
         }

         c++;

        }
        //System.out.print(occurences.toString());
        word.getMainDocumentPart().addParagraphOfText("");
        word.getMainDocumentPart().addParagraphOfText("");
        word.getMainDocumentPart().addStyledParagraphOfText("Title", "INDEX");
        String count = occurences.toString();
        word.getMainDocumentPart().addParagraphOfText("count");
...