編程為 Word 文檔添加索引,老師要求先了解手動操作,再用 SDK 實現。
| 方案 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| VBA 宏 | Word 內置、錄製宏即可獲得代碼、調試直觀 | 需啟用宏、僅 Windows Word、部署麻煩 | 內部自動化、一次性任務 |
| NPOI (.NET) | 純托管、無 Office 依賴、跨平台、開源免費 | 高級排版/索引功能需手動構建 XML | 服務端批量生成、Web 應用 |
| Open XML SDK | 微軟官方、操作底層 OOXML、功能全 | 學習曲線陡峭、代碼冗長 | 需精確控制 Word 結構的企業級應用 |
| Python python-docx | 語法簡潔、生態豐富 | 索引支持有限 | 腳本自動化、數據科學流程 |
XWPFRun 標記字符(XE 域代碼)。INDEX 域:XWPFParagraph p = doc.createParagraph();
XWPFRun run = p.createRun();
run.setText(" INDEX \\c \"2\" \\z \"1033\" "); // 域代碼文本
// 需設置 run.getCTR().addNewFldChar().setFldCharType(STFldCharType.BEGIN) 等域結構
// NPOI 4.1+ 提供 XWPFRun.insertFieldCode() 簡化操作