NPOI创建超链接书签

            利用NPOI创建超链接书签分两个步骤。一是创建与书签关联的超链接;二是创建书签。下面逐步介绍。

一、创建与书签关联的超链接

            NPOI提供两种超链接,一种是超链接到另一文件;另一种是超链接到书签。下面仅介绍创建超链接到书签的方法。

            创建文档:XWPFDocument m_Docx = new XWPFDocument();

            创建段落:CT_P m_p = m_Docx.Document.body.AddNewP();

            创建超链接集合:m_p.Items= new System.Collections.ArrayList();

            创建超链接:

            CT_Hyperlink1m_hyperlink = new CT_Hyperlink1();

            m_hyperlink.anchor = "NPOI1";//书签名

            m_hyperlink.history = ST_OnOff.True;

            m_hyperlink.Items = new System.Collections.ArrayList();

            CT_Rm_r = new CT_R();

            m_r.AddNewT().Value = "书签1";

            m_hyperlink.Items.Add(m_r);

            m_hyperlink.ItemsElementName = new List<ItemsChoiceType12>();

            m_hyperlink.ItemsElementName.Add(ItemsChoiceType12.hyperlink);

            m_p.Items.Add(m_hyperlink);

二、创建书签

            书签分开始和结束两部分组成。

            //书签0开始

            intm_bookId = 0;//同一段内有多个书签,需要不同的Id,不同段的书签Id可以相同

            m_p =m_Docx.Document.body.AddNewP();

            m_p.AddNewPPr().AddNewJc().val = ST_Jc.both;

           m_p.AddNewPPr().AddNewSpacing().line = "400";//固定行距20

           m_p.AddNewPPr().AddNewSpacing().lineRule = ST_LineSpacingRule.exact;

            m_p.Items = new System.Collections.ArrayList();

            CT_Bookmarkm_ctbook1 = new CT_Bookmark();

            m_bookId = m_p.Items.Count;

            m_ctbook1.id = m_bookId.ToString();//"0";

            m_ctbook1.name = "NPOI1";//书签名,超链接用

            m_p.Items.Add(m_ctbook1);

            m_p.ItemsElementName = new List<ParagraphItemsChoiceType>();

            m_p.ItemsElementName.Add(ParagraphItemsChoiceType.bookmarkStart);

            m_p.AddNewR().AddNewT().Value = "1NPOI介绍";

            //书签0结束

            m_ctbook1 = new CT_Bookmark();

            m_ctbook1.id = m_bookId.ToString();//"0";

            m_p.Items.Add(m_ctbook1);

            m_p.ItemsElementName.Add(ParagraphItemsChoiceType.bookmarkEnd);

 

       经过调试的例子下载:http://download.csdn.net/detail/gltide/8005379。NPOI是tonyqus提供的2.1.1.0源码经过修改编译,创建的docx在word2007可以打开,例子创建效果图如下。


©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页