word 书签排序算法

Posted 喜爱糖葫芦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了word 书签排序算法相关的知识,希望对你有一定的参考价值。

直接上代码

     /// <summary>
        /// 通过计算插入引文的位置格式化合适的引文序号
        /// </summary>
        /// <returns></returns>
        public static int FormatBookMarkNoByPosition(Microsoft.Office.Interop.Word.Application WordApp)
        {
            try
            {
                int _nStart = WordApp.Selection.Start;
                int _nEnd = WordApp.Selection.End;
                if (_nStart != _nEnd)
                {
                    return -99999;
                }
                ArrayList _listMarks = new ArrayList();
                foreach (Word.Bookmark item in WordApp.ActiveDocument.Bookmarks)
                {
                    if (item.Name.StartsWith("BIMT"))
                    {
                        _listMarks.Add(item);
                    }
                }
                Word.Bookmark _markTemp = null;
                for (int i = 0; i < _listMarks.Count; i++)
                {
                    for (int j = i; j < _listMarks.Count; j++)
                    {
                        int _nStartA = ((Word.Bookmark)_listMarks[i]).Start;
                        int _nStartB = ((Word.Bookmark)_listMarks[j]).Start;
                        if (_nStartA > _nStartB)
                        {
                            _markTemp = ((Word.Bookmark)_listMarks[i]);
                            _listMarks[i] = _listMarks[j];
                            _listMarks[j] = _markTemp;
                        }
                    }
                }
                int _nIndex = 1;
                foreach (Word.Bookmark item in _listMarks)
                {
                    string _strIndex = string.Format("[{0}]", _nIndex);
                    string _strNmae = item.Name;
                    Word.Range _rangeTemp = WordApp.ActiveDocument.Range(item.Start, item.End);
                    _rangeTemp.Text = _strIndex;

                    //item.Range.Text = _strIndex;
                    Word.Bookmark mark = WordApp.ActiveDocument.Bookmarks.Add(_strNmae, _rangeTemp);
                    _nIndex++;
                }
                object o = WordApp.ActiveDocument.Bookmarks;
            }
            catch (Exception ex)
            {

                throw;
            }
            return 0;
        }

  

以上是关于word 书签排序算法的主要内容,如果未能解决你的问题,请参考以下文章

如果我想从另一个片段中添加书签,为啥我的书签单词没有保存到 sqlite 数据库?

Word批量删除所有书签

Word利用域代码快速实现基于书签的交叉引用

跪求POI根据模板生成word文档的例子。 注意啦,是用书签标记的方式,替换书签中的内容。

OpenXML - 将书签应​​用于 Word 文档中的段落

使用 POI 读取 Word 中的书签替换书签内容(doc和docx)