Sergey Belskiy Technical Blog

All about SharePoint

How to work with lists in Word Add-in #Office.js #JavaScript API

С выходом новой версии office.js 1.3 появилась возможность использовать списки во время наполнения текстом документы Word. Полный перечень обновлений можно посмотреть здесь

Следуя документации, чтобы создать список нам необходимо сначала выбрать необходимый параграф, в который мы завернем наг список.

Делается это таким образом:

Word.run(function (context) {
var body = context.document.body;
var newP = body.insertParagraph(‘Test creating list’, Word.InsertLocation.end);
var list = newP.startNewList();
list.load();
context.sync();
})

По умолчанию тип Вашего списка будет Bullet. Если Вы хотите использовать привычный порядковый с номерами, Вам необходимо сделать следующее:

list.setLevelNumbering(0, Word.ListNumbering.None);
Этот метод заставит изменить тип Вашего списка. Первый параметр обозначает уровень в Вашем списке, второй параметр обозначает формат. Существуют следующие форматы None, Arabic, UpperRoman, LowerRoman, UpperLetter, LowerLetter.
Если Вы хотите изменить тип списка на втором уровне, Вам необходимо выполнить метод
list.setLevelNumbering(1, Word.ListNumbering.Arabic);
То есть в результате мы получим следующий код
Word.run(function (context) {
var body = context.document.body;
var newP = body.insertParagraph(‘Test creating list’, Word.InsertLocation.end);
var list = newP.startNewList();
list.setLevelNumbering(0, Word.ListNumbering.None);
list.load();
newP = body.insertParagraph(‘Test creating list with sublevels’, Word.InsertLocation.end);
newP.listItem.level = 1;
list.setLevelNumbering(1, Word.ListNumbering.Arabic);
list.load();
context.sync();
})
Еще важный момент, когда есть необходимость указывать свой формат нижних уровней списка, которые зависят от верхних. Например, Вам необходимо создать пункт 1, в котором будут подпункты 1.1, 1.2 и т.д.
Это делается с помощью метода setLevelNumbering
list.setLevelNumbering(1, Word.ListNumbering.Arabic, [0, “.”, 1]);