Я пытаюсь использовать библиотеку Apache POI XWPF для создания отчета в файле docx Word.Apache POI: Как перезапустить нумерацию в нумерованном списке в текстовом документе?
Мой подход заключается в использовании существующего Word Document в качестве шаблона стилей. В шаблоне я определил стиль с именем «SRINumberList».
Так, чтобы загрузить шаблон и удалить все, что это не в колонтитул:
protected void createDocFromTemplate() {
try {
document = new XWPFDocument(this.getClass().getResourceAsStream(styleTemplate));
int pos = document.getBodyElements().size()-1;
while (pos >= 0) {
IBodyElement element = document.getBodyElements().get(pos);
if (!EnumSet.of(BodyType.HEADER, BodyType.FOOTER).contains(element.getPartType())) {
boolean success = document.removeBodyElement(pos);
logger.log(Level.INFO, "Removed body element "+pos+": "+success);
}
pos--;
}
} catch (IOException e) {
logger.log(Level.WARNING, "Not able to load style template", e);
document = new XWPFDocument();
}
}
В настоящее время в моем документе есть несколько различных разделов, которые содержат пронумерованные списки. Каждый из них должен быть повторно начать нумерацию с 1. Это типичный способ я это делаю:
if (itemStem.getItems().size() > 0) {
p = document.createParagraph();
p.setStyle(ParaStyle.StemAndItemTitle.styleId);
final BigInteger bulletNum = newBulletNumber();
run = p.createRun();
run.setText("Sub Items");
itemStem.getItems().stream().forEach(item -> {
XWPFParagraph p2 = document.createParagraph();
p2.setStyle(ParaStyle.NumberList.styleId);
XWPFRun run2 = p2.createRun();
run2.setText(item.getSubItemText());
});
p = document.createParagraph();
p.createRun();
}
Так что это правильно применяет стиль, который содержит формат чисел, но есть только одна последовательность (1 ... однако, как много элементов списка выходят в документе). Например:
Heading 1
1. item a
2. item b
3. item c
Heading 2
4. item a
5. item d
6. item g
Но то, что я хочу это:
Heading 1
1. item a
2. item b
3. item c
Heading 2
1. item a
2. item d
3. item g
Поэтому в основном я пытаюсь выяснить, как использовать этот стиль у меня есть, но перезагружать Нумерация страниц различных мест в документе. Может ли кто-нибудь предоставить образец того, как это будет работать?
это близко ... он, конечно, перезапускает числа, но не перезапускает только любой список. то есть, если у меня есть альфа-список, я бы хотел, чтобы он перезапустился на «a». – Jim