Suppose there is table of thousand data items and we need to create an index of any of the items. So,how can an index be created in Docx file programmatically i.e with the help of docx4j.
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");