- NPOI
- Spire.Doc
- Download Sample Code
using NPOI.OpenXmlFormats.Wordprocessing;
using NPOI.XWPF.UserModel;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NPOI
{
class Program
{
static void Main(string[] args)
{
//Create document
XWPFDocument doc = new XWPFDocument();
//Create numbering
XWPFNumbering numbering = doc.CreateNumbering();
string abstractNumId = numbering.AddAbstractNum();
string numId = numbering.AddNum(abstractNumId);
//Create paragragh and set its list level
XWPFParagraph para1 = doc.CreateParagraph();
XWPFRun run1 = para1.CreateRun();
run1.SetText("The first paragraph");
para1.SetNumID(numId, "0");
//Create paragragh and set the list level
XWPFParagraph para2 = doc.CreateParagraph();
XWPFRun run2 = para2.CreateRun();
run2.SetText("The second paragraph");
para2.SetNumID(numId, "0");
//Create paragragh and apply multi level list
XWPFParagraph para3 = doc.CreateParagraph();
XWPFRun run3 = para3.CreateRun();
run3.SetText("The third paragraph");
para3.SetNumID(numId, "0");
para3 = doc.CreateParagraph();
run3 = para3.CreateRun();
run3.SetText("The first sub-item");
para3.SetNumID(numId, "1");
para3 = doc.CreateParagraph();
run3 = para3.CreateRun();
run3.SetText("The second sub-item");
para3.SetNumID(numId, "1");
para3 = doc.CreateParagraph();
run3 = para3.CreateRun();
run3.SetText("The sub-sub-item");
para3.SetNumID(numId, "2");
//Save the file and Launch
using (FileStream sw = new FileStream("ListNumbering.doc", FileMode.Create))
{
doc.Write(sw);
}
System.Diagnostics.Process.Start("ListNumbering.doc");
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Spire.Doc;
using Spire.Doc.Documents;
namespace Spire.Doc
{
class Program
{
static void Main(string[] args)
{
//Create document
Document document = new Document();
Section section = document.AddSection();
//Define a new multi-level list style
ListStyle listStyle = new ListStyle(document, ListType.Bulleted);
listStyle.Name = "levelstyle";
listStyle.Levels[0].PatternType = ListPatternType.Bullet;
listStyle.Levels[1].PatternType = ListPatternType.Bullet;
listStyle.Levels[2].PatternType = ListPatternType.Bullet;
document.ListStyles.Add(listStyle);
//Create paragraph and apply the defined list style
Paragraph paragraph = section.AddParagraph();
paragraph.AppendText("The first paragraph");
paragraph.ApplyStyle(BuiltinStyle.Heading1);
paragraph.ListFormat.ApplyStyle("levelstyle");
//Create paragraph and apply the defined list style
paragraph = section.AddParagraph();
paragraph.AppendText("The second paragraph");
paragraph.ApplyStyle(BuiltinStyle.Heading1);
paragraph.ListFormat.ApplyStyle("levelstyle");
//Create paragragh and apply multi level list by setting different ListLevelNumber
paragraph = section.AddParagraph();
paragraph.AppendText("The third paragraph");
paragraph.ApplyStyle(BuiltinStyle.Heading1);
paragraph.ListFormat.ApplyStyle("levelstyle");
paragraph = section.AddParagraph();
paragraph.AppendText("The first sub-item");
paragraph.ApplyStyle(BuiltinStyle.Heading2);
paragraph.ListFormat.ListLevelNumber = 1;
paragraph.ListFormat.ApplyStyle("levelstyle");
paragraph = section.AddParagraph();
paragraph.AppendText("The second sub-item");
paragraph.ApplyStyle(BuiltinStyle.Heading2);
paragraph.ListFormat.ContinueListNumbering();
paragraph.ListFormat.ApplyStyle("levelstyle");
paragraph = section.AddParagraph();
paragraph.AppendText("The sub-sub-item");
paragraph.ApplyStyle(BuiltinStyle.Heading5);
paragraph.ListFormat.ListLevelNumber = 2;
paragraph.ListFormat.ApplyStyle("levelstyle");
//Save and Launch
document.SaveToFile("ListNumbering.docx", FileFormat.Docx);
System.Diagnostics.Process.Start("ListNumbering.docx");
}
}
}
