C# /VB.NET添加、读取Word脚注/尾注

前言

脚注和尾注是对文本的补充说明。脚注一般位于页面的底部,可以作为文档某处内容的注释;尾注一般位于文档的末尾,列出引文 的出处等。在本示例中将介绍如何来添加或删除Word脚注。

工具使用

Free Spire. Doc for .NET

第一步 dll引用

第二步 添加Word脚注、尾注

【C#】

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

namespace InsertFootnote_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建一个word文档对象并加载需要添加脚注尾注的word文档
            Document document = new Document();
            document.LoadFromFile("sample.docx", FileFormat.Docx2010);

            //获取第3个段落
            Paragraph paragraph = document.Sections[0].Paragraphs[2];

            //添加脚注
            Footnote footnote = paragraph.AppendFootnote(FootnoteType.Footnote);

            //在第一段里查找指定字符串,并添加脚注
            DocumentObject obj = null;

            for (int i = 0; i < paragraph.ChildObjects.Count; i++)
            {
                obj = paragraph.ChildObjects[i];
                if (obj.DocumentObjectType == DocumentObjectType.TextRange)
                {
                    TextRange textRange = obj as TextRange;

                    if (textRange.Text == "中国——东盟自贸区框架")
                    {
                        //为添加脚注的字符串设置加粗格式
                        textRange.CharacterFormat.Bold = true;
                        //插入脚注
                        paragraph.ChildObjects.Insert(i + 1, footnote);
                        break;
                    }
                }
            }

            //添加脚注内容被设置字体格式
            TextRange text = footnote.TextBody.AddParagraph().AppendText("2002年11月4日,朱镕基总理和东盟10国领导人共同签署了《中国-东盟全面经济合作框架协议》,这标志着中国与东盟的经贸合作进入了一个新的历史阶段。");
            text.CharacterFormat.FontName = "Arial Black";
            text.CharacterFormat.FontSize = 9;
            text.CharacterFormat.TextColor = Color.DarkGray;
            footnote.MarkerCharacterFormat.FontName = "Calibri";
            footnote.MarkerCharacterFormat.FontSize = 12;
            footnote.MarkerCharacterFormat.Bold = true;
            footnote.MarkerCharacterFormat.TextColor = Color.DarkGreen;

            //获取第5段落
            Paragraph paragraph2 = document.Sections[0].Paragraphs[4];

            //添加尾注并设置尾注和格式
            Footnote endnote = paragraph2.AppendFootnote(FootnoteType.Endnote);

            TextRange text2 = endnote.TextBody.AddParagraph().AppendText("党的十七大报告明确指出:“坚持对外开放的基本国策,把‘引进来’和‘走出去’更好地结合起来,扩大开放领域,优化开放结构,提高开放质量,完善内外联动,互利共赢、安全高效的开放型经济体系,形成经济全球化条件下参与国际经济合作和竞争的新优势。");
            text2.CharacterFormat.FontName = "Arial Black";
            text2.CharacterFormat.FontSize = 9;
            text2.CharacterFormat.TextColor = Color.Black;
            endnote.MarkerCharacterFormat.FontName = "Calibri";
            endnote.MarkerCharacterFormat.FontSize = 12;
            endnote.MarkerCharacterFormat.Bold = false;
            endnote.MarkerCharacterFormat.TextColor = Color.DarkGreen;

            //保存并打开文档
            document.SaveToFile("添加脚注尾注.docx", FileFormat.Docx2010);
            System.Diagnostics.Process.Start("添加脚注尾注.docx");
        }
    }
}

测试结果:

【VB.NET】

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

Namespace InsertFootnote_Doc

    Class Program

        Private Shared Sub Main(ByVal args As String())
            Dim document As Document = New Document()
            document.LoadFromFile("sample.docx", FileFormat.Docx2010)
            Dim paragraph As Paragraph = document.Sections(0).Paragraphs(2)
            Dim footnote As Footnote = paragraph.AppendFootnote(FootnoteType.Footnote)
            Dim obj As DocumentObject = Nothing
            For i As Integer = 0 To paragraph.ChildObjects.Count - 1
                obj = paragraph.ChildObjects(i)
                If obj.DocumentObjectType = DocumentObjectType.TextRange Then
                    Dim textRange As TextRange = TryCast(obj, TextRange)
                    If textRange.Text = "中国——东盟自贸区框架" Then
                        textRange.CharacterFormat.Bold = True
                        paragraph.ChildObjects.Insert(i + 1, footnote)
                        Exit For
                    End If
                End If
            Next

            Dim text As TextRange = footnote.TextBody.AddParagraph().AppendText("2002年11月4日,朱镕基总理和东盟10国领导人共同签署了《中国-东盟全面经济合作框架协议》,这标志着中国与东盟的经贸合作进入了一个新的历史阶段。")
            text.CharacterFormat.FontName = "Arial Black"
            text.CharacterFormat.FontSize = 9
            text.CharacterFormat.TextColor = Color.DarkGray
            footnote.MarkerCharacterFormat.FontName = "Calibri"
            footnote.MarkerCharacterFormat.FontSize = 12
            footnote.MarkerCharacterFormat.Bold = True
            footnote.MarkerCharacterFormat.TextColor = Color.DarkGreen
            Dim paragraph2 As Paragraph = document.Sections(0).Paragraphs(4)
            Dim endnote As Footnote = paragraph2.AppendFootnote(FootnoteType.Endnote)
            Dim text2 As TextRange = endnote.TextBody.AddParagraph().AppendText("党的十七大报告明确指出:“坚持对外开放的基本国策,把‘引进来’和‘走出去’更好地结合起来,扩大开放领域,优化开放结构,提高开放质量,完善内外联动,互利共赢、安全高效的开放型经济体系,形成经济全球化条件下参与国际经济合作和竞争的新优势。")
            text2.CharacterFormat.FontName = "Arial Black"
            text2.CharacterFormat.FontSize = 9
            text2.CharacterFormat.TextColor = Color.Black
            endnote.MarkerCharacterFormat.FontName = "Calibri"
            endnote.MarkerCharacterFormat.FontSize = 12
            endnote.MarkerCharacterFormat.Bold = False
            endnote.MarkerCharacterFormat.TextColor = Color.DarkGreen
            document.SaveToFile("添加脚注尾注.docx", FileFormat.Docx2010)
            System.Diagnostics.Process.Start("添加脚注尾注.docx")
        End Sub
    End Class
End Namespace

第三步 读取脚注尾注

【C#】

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.IO;
using System.Text;

namespace ReadFootnote_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建Document类对象,加载需要测试的文档
            Document document = new Document();
            document.LoadFromFile("添加脚注尾注.docx");
            //获取文档第一个section
            Section section = document.Sections[0];

            //实例化StringBuilder类
            StringBuilder sb = new StringBuilder();

            //遍历文档中所有段落
            foreach (Paragraph paragraph in section.Paragraphs)
            {
                for (int i = 0, cnt = paragraph.ChildObjects.Count; i < cnt; i++)
                {
                    ParagraphBase pBase = paragraph.ChildObjects[i] as ParagraphBase;
                    if (pBase is Footnote)
                    {
                        //若需要读取尾注,将此处FootnoteType.Footnote改成 FootnoteType.Endnote即可
                        if ((pBase as Footnote).FootnoteType == FootnoteType.Footnote)
                        {
                            foreach (Paragraph footPara in (pBase as Footnote).TextBody.Paragraphs)
                            {
                                sb.Append(footPara.Text);
                            }
                        }
                    }
                }
            }
            //将读取内容写入文本并保存
            File.WriteAllText("FootNotes.txt", sb.ToString());
            //打开文档
            System.Diagnostics.Process.Start("FootNotes.txt");
        }
    }
}

读取脚注:

读取尾注:

【VB.NET】

Imports Spire.Doc
Imports Spire.Doc.Documents
Imports Spire.Doc.Fields
Imports System.IO
Imports System.Text

Namespace ReadFootnote_Doc

    Class Program

        Private Shared Sub Main(ByVal args As String())
            Dim document As Document = New Document()
            document.LoadFromFile("添加脚注尾注.docx")
            Dim section As Section = document.Sections(0)
            Dim sb As StringBuilder = New StringBuilder()
            For Each paragraph As Paragraph In section.Paragraphs
                While i < cnt
                    Dim pBase As ParagraphBase = TryCast(paragraph.ChildObjects(i), ParagraphBase)
                    If TypeOf pBase Is Footnote Then
                        If(TryCast(pBase, Footnote)).FootnoteType = FootnoteType.Footnote Then
                            For Each footPara As Paragraph In(TryCast(pBase, Footnote)).TextBody.Paragraphs
                                sb.Append(footPara.Text)
                            Next
                        End If
                    End If

                    i += 1
                End While
            Next

            File.WriteAllText("FootNotes.txt", sb.ToString())
            System.Diagnostics.Process.Start("FootNotes.txt")
        End Sub
    End Class
End Namespace

《本文完》

原文地址:http://blog.51cto.com/eiceblue/2108469

时间: 2024-11-04 21:24:22

C# /VB.NET添加、读取Word脚注/尾注的相关文章

word 2013 尾注后继续添加正文的方法

通常,文档的尾注后面是不能再添加.编辑正文性质的内容的.这篇文章介绍一种稍微"曲折"的方法来解决这一问题.当我们利用尾注的方法在论文中添加参考文献时,如果参考文献后面还有正文内容,那么此方法将对你十分有用. 1 .准备文档的基本内容 我们先准备好文档的正文内容.比如新建一个空白文档,第一页内输入"这里是第一节的内容",然后通过"页面布局"菜单插入一个任意类型分节符,产生第二页(也是第二节):在第二页中输入"这里是第二节的内容"

word如何插入和删除脚注,尾注

在我们日常使用word时,经常会使用到脚注/尾注来对文中某些文字或内容进行注释或是重点说明,效果挺好,挺直观和明显.但是很多人并不会使用,特别是当需要删除脚注事,就特别苦恼了,那根小横线怎么也删除不掉,点也点不到,那是怎么了呢,今天我就来教教各位吧. 步骤阅读 百度经验:jingyan.baidu.com 工具/原料 word2007 百度经验:jingyan.baidu.com 插入脚注 1 打开word,选择你要添加脚注的文字,然后在word选显卡中选中点击: “引用”——>“插入脚注”,如

[转载]word尾注插入参考文献——前人经验+自己总结

1. 以尾注的方式插入第一个参考文献. 将光标定位于word文档中将要插入参考文献的位置,按“插入/引用/脚注和尾注”.出现一菜单,选择“尾注”,“文档结尾”,编号格式为“1,2,3”.按“插入”按钮,就在该处就插入了一个上标“1”,而光标自动跳到文档最后,一个上标“1”的地方,这就是输入第一个参考文献的地方.然后按照排版格式要求输入参考文献. 注意:给文档中间的尾注编号添加方括号,选择   编辑——替换,输入查找内容为   ^e ,替换内容为   [^&].就OK了. 2. 文档结尾的参考文献

C# 添加、删除、读取Word形状(基于Spire.Cloud.Word.SDK)

本文介绍调用Spire.Cloud.Word.SDK提供的接口shapesApi来操作Word形状,包括添加形状AddShape(),添加形状时,可设置形状类型.颜色.大小.位置.倾斜.轮廓.文本环绕方式.顺序):删除形状DeleteShape()和读取形状属性GetShapeProperties()等.调用接口方法及步骤参考以下步骤:步骤一:dll文件获取及导入.通过官网本地下载SDK文件包.(须在e-iceblue中国官网在线编辑板块中注册账号并登录) 下载后,解压文件,将Spire.Clo

Delphi读取Word

Delphi读取Word现在关于往Word中写入数据的方法比较多,现在专门开个贴子,希望大家把自己读取Word内容的心得体会说一下,包括读取word文档中,有几个段落,如何读取第几个段落,读取有拼音的汉字,读取图片,读取表格等,希望大家不吝赐教! [解决办法]//启动Wordtrywordapplication1.connect;exceptmessagedlg('word may not be installed', mterror, [mbok], 0);abort;end;//打开文档pr

[转] C#实现在Sql Server中存储和读取Word文件

出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (50), CONTRACT_FILE IMAGE ); 要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下: /// 将文件转换为byte数组 /// <summary> /// 将文件转换

asp.net页面读取word文档内容显示

用asp.net实现对指定word文档内容的读取显示该如何实现?比如左边读取指定文件夹中所有的word文档,以文档的标题作为链接,点击文档标题则在右边某位置显示出该word文档中的内容(包括字体样式,图片显示等). 可以这样实现: 操作WORD配置说明 引入:Word的对象库文件“MSWORD.OLB”(word 2000为MSWORD9.OLB) 1.运行Dcomcnfg.exe 2.组件服务――计算机――我的电脑――DCOM配置――找到microsoft word 文档 3.点击属性 4.选

使用NOPI读取Word、Excel文档内容

使用NOPI读取Excel的例子很多,读取Word的例子不多. Excel的解析方式有多中,可以使用ODBC查询,把Excel作为一个数据集对待.也可以使用文档结构模型的方式进行解析,即解析Workbook(工作簿).Sheet.Row.Column. Word的解析比较复杂,因为Word的文档结构模型定义较为复杂.解析Word或者Excel,关键是理解Word.Excel的文档对象模型. Word.Excel文档对象模型的解析,可以通过COM接口调用,此类方式使用较广.(可以录制宏代码,然后替

java操作office和pdf文件java读取word,excel和pdf文档内容

在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应用.如果想深入了解原理.请读者自行研究一些相关源码. 首先我们来认识一下读取相关文档的jar包: 1. 引用POI包读取word文档内容 poi.jar 下载地址 http://apache.freelamp.com/poi/release/bin/poi-bin-3.6-20091214.zip