Связывание строки в надстройке Word VSTO Word.interop - PullRequest
0 голосов
/ 09 октября 2019

У меня есть документ Word с текстом и цифрами. Числа написаны так:

2-16-9035 / 88, 2-16-8344 / 41, 5-17-43 / 12, 2-15-5027 / 137

и так далее. Между ними может быть текст. Как:

"В 2-16-8344 / 4 был случай 2-16-9035 / 88".

Мне нужно поставить ссылку под цифрами,У меня есть код:

private void FindAndReplace(Microsoft.Office.Interop.Word.Application doc, object findText, object replaceWithText)
        {
            //options
            object matchCase = false;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundsLike = false;
            object matchAllWordForms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;                      //Function for searching and wrapping the text. It can also replace the wraped text.
            object matchDiacritics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object read_only = false;
            object visible = true;
            object replace = false;
            object wrap = 1;
            //execute find and replace
            doc.Selection.Find.Execute(ref findText, ref matchCase, ref matchWholeWord,
                ref matchWildCards, ref matchSoundsLike, ref matchAllWordForms, ref forward, ref wrap, ref format, ref replaceWithText, ref replace,
                ref matchKashida, ref matchDiacritics, ref matchAlefHamza, ref matchControl);
        }

        private void Button3_Click(object sender, RibbonControlEventArgs e)
        {
            Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
            Word.Application app = Globals.ThisAddIn.Application;
            foreach (Word.Paragraph paragraph in doc.Paragraphs)
            {
                FindAndReplace(app, "Google", ""); //searching and wrapping.
                Word.Range currentRange = Globals.ThisAddIn.Application.Selection.Range;

                Microsoft.Office.Interop.Word.Hyperlink hp = (Microsoft.Office.Interop.Word.Hyperlink)
                    currentRange.Hyperlinks.Add(currentRange, "www.google.com");
            }
 }

Сейчас я могу найти слово "Google", обернуть его и поставить ссылку. Маби, у тебя будет идея, как мне искать эти номера. Как видите, они могут быть разной длины. Мне нужно найти число, получить строку (найденное число) и добавить гиперссылку: https://www.****asjaNr=$"{NumberWhatIsFound}"

...