aardio 文档

操作 Word 文档 (DOCX)

以下是用 aardio 调用 NPOI 创建包含页眉页脚和多页内容的 Word 文档。

import NPOI.XWPF.UserModel;
import System.IO;

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

// 设置正文内容
var paragraph = doc.CreateParagraph();
var run = paragraph.CreateRun();
run.SetText("正文内容:");

// 添加第一页内容
paragraph = doc.CreateParagraph();
run = paragraph.CreateRun();
run.SetText("这里是第一页的示例文本...");

// 添加分页符和第二页内容
paragraph = doc.CreateParagraph();
run = paragraph.CreateRun();
run.AddBreak(NPOI.XWPF.UserModel.BreakType.PAGE);  // 添加分页符
run.SetText("这里是第二页的示例文本...");

// 添加分页符和第三页内容
paragraph = doc.CreateParagraph();
run = paragraph.CreateRun();
run.AddBreak(NPOI.XWPF.UserModel.BreakType.PAGE);  // 添加分页符
run.SetText("这里是第三页的示例文本...");

// 获取或创建页眉页脚策略
var headerFooterPolicy = doc.GetHeaderFooterPolicy();
if (!headerFooterPolicy) {
    headerFooterPolicy = doc.CreateHeaderFooterPolicy();
}

// 创建页眉
var header = headerFooterPolicy.CreateHeader(NPOI.XWPF.Model.XWPFHeaderFooterPolicy.DEFAULT);
paragraph = header.GetParagraphArray(0);
if (!paragraph) paragraph = header.CreateParagraph();
paragraph.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.LEFT;  // 左对齐

run = paragraph.CreateRun();
run.SetText("页眉内容:");

// 创建页脚
var footer = headerFooterPolicy.CreateFooter(NPOI.XWPF.Model.XWPFHeaderFooterPolicy.DEFAULT);

paragraph = footer.GetParagraphArray(0);
if (!paragraph) paragraph = footer.CreateParagraph();
paragraph.Alignment = NPOI.XWPF.UserModel.ParagraphAlignment.CENTER;  // 居中对齐

// 添加页码信息
run = paragraph.CreateRun();
run.SetText("第 ");
paragraph.GetCTP().AddNewFldSimple().instr = "PAGE \\* MERGEFORMAT";  // 当前页码
run = paragraph.CreateRun();
run.SetText(" 页/共 ");
paragraph.GetCTP().AddNewFldSimple().instr = "NUMPAGES \\* MERGEFORMAT";  // 总页数
run = paragraph.CreateRun();
run.SetText(" 页");

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

代码说明

  1. 文档创建:使用 XWPFDocument() 创建新的 Word 文档对象。

  2. 内容添加

  3. 页眉页脚

  4. 文件保存

注意在 aardio 中调用 .NET 对象时,需要完整的命名空间路径(如 NPOI.XWPF.UserModel.XWPFDocument),这与 C# 的 using 语句简化命名空间的方式不同。

Markdown 格式