如何通過C#/VB.NET程式碼在Word中插入或刪除註腳

2023-03-08 12:00:11

註腳,是可以附在文章頁面的最底端的,對某些東西加以說明,印在書頁下端的註文。註腳和章節附註是對文字的補充說明。註腳一般位於頁面的底部,可以作為檔案某處內容的註釋。常用在一些說明書、標書、論文等正式文書用來引注的內容。這篇文章將為您展示如何通過C#/VB.NET程式碼,以程式設計方式在Word中插入或刪除註腳。以下是我整理的具體步驟及方法,並附上C#/VB.NET程式碼供大家參考。

  • 在Word中的特定段落後插入註腳
  • 在Word中的特定文字後插入註腳
  • 刪除Word檔案中的註腳

程式環境

本次測試時,在程式中引入Free Spire.Doc for .NET。可通過以下方法參照 Free Spire.Doc.dll檔案:

方法1:將 Free Spire.Doc for .NET下載到本地,解壓,安裝。安裝完成後,找到安裝路徑下BIN資料夾中的 Spire.Doc.dll。然後在Visual Studio中開啟「解決方案資源管理器」,滑鼠右鍵點選「參照」,「新增參照」,將本地路徑BIN資料夾下的dll檔案新增參照至程式。

方法2:通過NuGet安裝。可通過以下2種方法安裝:

(1)可以在Visual Studio中開啟「解決方案資源管理器」,滑鼠右鍵點選「參照」,「管理NuGet包」,然後搜尋「Free Spire.Doc」,點選「安裝」。等待程式安裝完成。

(2)將以下內容複製到PM控制檯安裝。

Install-Package FreeSpire.Doc -Version 10.8.0

在Word中的特定段落後插入註腳

以下是在指定段落後插入註腳的詳細步驟。

  • 建立Document範例
  • 使用Document.LoadFromFile() 方法載入範例Word檔案。
  • 獲取第一節,然後獲取該節中的指定段落。
  • 使用Paragraph.AppendFootnote(FootnoteType.Footnote) 方法在段落末尾新增註腳。
  • 設定註腳的文字內容、字型和顏色,然後設定註腳上標數位的格式。
  • 使用Document.SaveToFile() 方法儲存結果檔案。

完整程式碼

C#

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace AddFootnote
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立Document範例
            Document document = new Document();

            //載入Word檔案範例
            document.LoadFromFile("我與地壇.docx");

            //獲取第一節
            Section section = document.Sections[0];

            //獲取節中的指定段落
            Paragraph paragraph = section.Paragraphs[1];

            //在段落末尾新增註腳
            Footnote footnote = paragraph.AppendFootnote(FootnoteType.Footnote);

            //設定註腳的文字內容
            TextRange text = footnote.TextBody.AddParagraph().AppendText("即使世界毀滅,那又怎樣,天地崩塌,於我何干,我在乎的只有他。");

            //設定文字字型和顏色
            text.CharacterFormat.FontName = "宋體";
            text.CharacterFormat.FontSize = 12;
            text.CharacterFormat.TextColor = Color.DarkBlue;

            //設定註腳上標數位的格式
            footnote.MarkerCharacterFormat.FontName = "Calibri";
            footnote.MarkerCharacterFormat.FontSize = 15; 
            footnote.MarkerCharacterFormat.Bold = true;
            footnote.MarkerCharacterFormat.TextColor = Color.DarkCyan;

            //儲存結果檔案
            document.SaveToFile("新增註腳.docx", FileFormat.Docx);

        }
    }
}

VB.NET

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace AddFootnote
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            '建立Document範例
            Dim document As Document = New Document()

            '載入Word檔案範例
            document.LoadFromFile("我與地壇.docx")

            '獲取第一節
            Dim section As Section = document.Sections(0)

            '獲取節中的指定段落
            Dim paragraph As Paragraph = section.Paragraphs(1)

            '在段落末尾新增註腳
            Dim footnote As Footnote = paragraph.AppendFootnote(FootnoteType.Footnote)

            '設定註腳的文字內容
            Dim text As TextRange = footnote.TextBody.AddParagraph().AppendText("即使世界毀滅,那又怎樣,天地崩塌,於我何干,我在乎的只有他。")

            '設定文字字型和顏色
            text.CharacterFormat.FontName = "宋體"
            text.CharacterFormat.FontSize = 12
            text.CharacterFormat.TextColor = Color.DarkBlue

            '設定註腳上標數位的格式
            footnote.MarkerCharacterFormat.FontName = "Calibri"
            footnote.MarkerCharacterFormat.FontSize = 15
            footnote.MarkerCharacterFormat.Bold = True
            footnote.MarkerCharacterFormat.TextColor = Color.DarkCyan

            '儲存結果檔案
            document.SaveToFile("新增註腳.docx", FileFormat.Docx)

        End Sub
    End Class
End Namespace

效果圖

在Word中的特定文字後插入註腳

我們還可以在檔案中任何位置的指定文字後插入註腳。以下是詳細步驟。

  • 建立Document範例。
  • 使用Document.LoadFromFile() 方法載入Word檔案。
  • 使用Document.FindString() 方法查詢指定的文字。
  • 使用TextSelection.GetAsOneRange() 方法獲取指定文字的文字範圍。
  • 使用TextRange.OwnerParagraph 屬性獲取文字範圍所在的段落。
  • 使用Paragraph.ChildObjects.IndexOf() 方法獲取段落中文字範圍的位置索引。
  • 使用Paragraph.AppendFootnote(FootnoteType.Footnote)方法新增註腳,然後使用Paragraph.ChildObjects.Insert() 方法在指定文字後插入註腳
  • 設定註腳的文字內容、字型和顏色,然後設定註腳上標數位的格式。
  • 使用Document.SaveToFile() 方法儲存結果檔案。

完整程式碼

C#

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace InsertFootnote
{
    class Program
    {
        static void Main(string[] args)
        {
            //建立Document範例
            Document document = new Document();

            //載入Word檔案範例
            document.LoadFromFile("我與地壇.docx");

            //查詢指定的文字字串
            TextSelection selection = document.FindString("最苦的母親", false, true);

            //獲取指定文字的文字範圍
            TextRange textRange = selection.GetAsOneRange();

            //獲取文字範圍所在的段落
            Paragraph paragraph = textRange.OwnerParagraph;

            //獲取段落中文字範圍的位置索引
            int index = paragraph.ChildObjects.IndexOf(textRange);

            //新增註腳
            Footnote footnote = paragraph.AppendFootnote(FootnoteType.Footnote);

            //在指定段落後插入註腳
            paragraph.ChildObjects.Insert(index + 1, footnote);

            //設定註腳的文字內容
            TextRange text = footnote.TextBody.AddParagraph().AppendText("不知道兒子的不幸在母親那兒總是要加倍的。");

            //設定文字字型和顏色
            text.CharacterFormat.FontName = "宋體";
            text.CharacterFormat.FontSize = 12;
            text.CharacterFormat.TextColor = Color.DarkBlue;

            //設定註腳上標數位的格式
            footnote.MarkerCharacterFormat.FontName = "Calibri";
            footnote.MarkerCharacterFormat.FontSize = 15;
            footnote.MarkerCharacterFormat.Bold = true;
            footnote.MarkerCharacterFormat.TextColor = Color.DarkGreen;

            //儲存結果檔案
            document.SaveToFile("插入註腳.docx", FileFormat.Docx);
        }
    }
}

VB.NET

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.Drawing

Namespace InsertFootnote
    Friend Class Program
        Private Shared Sub Main(ByVal args As String())
            '建立Document範例
            Dim document As Document = New Document()

            '載入Word檔案範例
            document.LoadFromFile("我與地壇.docx")

            '查詢指定的文字字串
            Dim selection As TextSelection = document.FindString("最苦的母親", False, True)

            '獲取指定文字的文字範圍
            Dim textRange As TextRange = selection.GetAsOneRange()

            '獲取文字範圍所在的段落
            Dim paragraph As Paragraph = textRange.OwnerParagraph

            '獲取段落中文字範圍的位置索引
            Dim index As Integer = paragraph.ChildObjects.IndexOf(textRange)

            '新增註腳
            Dim footnote As Footnote = paragraph.AppendFootnote(FootnoteType.Footnote)

            '在指定段落後插入註腳
            paragraph.ChildObjects.Insert(index + 1, footnote)

            '設定註腳的文字內容
            Dim text As TextRange = footnote.TextBody.AddParagraph().AppendText("不知道兒子的不幸在母親那兒總是要加倍的。")

            '設定文字字型和顏色
            text.CharacterFormat.FontName = "宋體"
            text.CharacterFormat.FontSize = 12
            text.CharacterFormat.TextColor = Color.DarkBlue

            '設定註腳上標數位的格式
            footnote.MarkerCharacterFormat.FontName = "Calibri"
            footnote.MarkerCharacterFormat.FontSize = 15
            footnote.MarkerCharacterFormat.Bold = True
            footnote.MarkerCharacterFormat.TextColor = Color.DarkGreen

            '儲存結果檔案
            document.SaveToFile("插入註腳.docx", FileFormat.Docx)
        End Sub
    End Class
End Namespace

效果圖

—本文完—