aardio 文档

Word 创建项目符号

概述

本文介绍如何使用 aardio 通过 NPOI 库创建带有项目符号列表的 Word 文档(.docx 格式)。我们将演示如何创建单级和多级项目符号列表。

基础用法

1. 创建文档和编号样式

import NPOI.XWPF.UserModel;

// 创建新的 Word 文档
var doc = NPOI.XWPF.UserModel.XWPFDocument();

// 创建编号样式
var numbering = doc.CreateNumbering();

// 添加抽象编号和实际编号
var abstractNumId = numbering.AddAbstractNum();
var numId = numbering.AddNum(abstractNumId);

2. 添加带项目符号的段落

// 创建第一个段落(标题)
var p0 = doc.CreateParagraph();
var r0 = p0.CreateRun();
r0.SetText("简单项目符号");
r0.IsBold = true;
r0.FontFamily = "Courier";
r0.FontSize = 12;

// 创建带项目符号的段落1
var p1 = doc.CreateParagraph();
var r1 = p1.CreateRun();
r1.SetText("第一步,创建段落和运行对象,设置文本");
p1.SetNumID(numId);

// 创建带项目符号的段落2
var p2 = doc.CreateParagraph();
var r2 = p2.CreateRun();
r2.SetText("第二步,调用 XWPFDocument.CreateNumbering() 创建编号样式");
p2.SetNumID(numId);

// 创建带项目符号的段落3
var p3 = doc.CreateParagraph();
var r3 = p3.CreateRun();
r3.SetText("第三步,添加 AbstractNum[numbering.AddAbstractNum()] 和 Num(numbering.AddNum(abstractNumId))");
p3.SetNumID(numId);

// 创建带项目符号的段落4
var p4 = doc.CreateParagraph();
var r4 = p4.CreateRun();
r4.SetText("最后,调用 XWPFParagraph.SetNumID(numId) 设置段落属性,CT_P.pPr.numPr");
p4.SetNumID(numId);

多级项目符号

// 创建多级项目符号
abstractNumId = numbering.AddAbstractNum();
numId = numbering.AddNum(abstractNumId);

// 添加两个空段落
doc.CreateParagraph();
doc.CreateParagraph();

// 添加多级项目符号标题
var p1 = doc.CreateParagraph();
var r1 = p1.CreateRun();
r1.SetText("多级项目符号");
r1.IsBold = true;
r1.FontFamily = "Courier";
r1.FontSize = 12;

// 第一级
p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第一级");
p1.SetNumID(numId, "0");

// 第二级
p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第一级的第一个子项");
p1.SetNumID(numId, "1");

p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第一级的第二个子项");
p1.SetNumID(numId, "1");

p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第一级的第三个子项");
p1.SetNumID(numId, "1");

// 返回第一级
p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第二级");
p1.SetNumID(numId, "0");

// 第二级
p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第二级的第一个子项");
p1.SetNumID(numId, "1");

p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第二级的第二个子项");
p1.SetNumID(numId, "1");

// 第三级
p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第二级的第三个子项的第一个子项");
p1.SetNumID(numId, "2");

p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第二级的第三个子项的第二个子项");
p1.SetNumID(numId, "2");

// 返回第一级
p1 = doc.CreateParagraph();
r1 = p1.CreateRun();
r1.SetText("第三级");
p1.SetNumID(numId, "0");

保存文档

// 保存文档到文件
import System.IO;
var fs = System.IO.FileStream("sample.docx", System.IO.FileMode.Create);
doc.Write(fs);
fs.Close();

关键点说明

  1. 编号系统

  2. 多级编号

  3. 文本样式

  4. 文件保存

这个示例展示了 NPOI 创建 Word 文档项目符号列表的基本方法,可以根据需要调整样式和层级结构。

Markdown 格式