Категория

Как удалить гиперссылки в Word (на компьютере, онлайн и с помощью C#)

2026-08-28 07:26:10 jie zou
AI Summarize:
ChatGPT
ChatGPT
Claude
Grok
Perplexity
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Визуальное руководство по удалению отдельных или всех гиперссылок в Word

Краткое резюме (TL;DR):

  • Одна или несколько гиперссылок: Нажмите правой кнопкой мыши на текст ссылки и выберите Удалить гиперссылку.

  • Все гиперссылки в документе:

    • Windows: Нажмите Ctrl + A, затем Ctrl + Shift + F9.

    • Mac: Нажмите Cmd + A, затем Cmd + Shift + F9. Если клавиша F9 назначена системной функции macOS, используйте Cmd + Fn + Shift + F9 или нажмите Cmd + 6.

  • Word не установлен: Используйте Word для интернета, чтобы удалить гиперссылки в браузере.

  • Множество файлов Word: Используйте пакетную обработку на C# для автоматического удаления гиперссылок.

Гиперссылки полезны для обмена ссылками на веб-сайты, источники и другие ресурсы в документе Word. Однако при подготовке документа к печати, публикации или повторному использованию эти ссылки могут стать ненужными или оставить после себя нежелательное форматирование.

В этом руководстве показано, как удалять гиперссылки в Word: от удаления отдельных или всех ссылок в Microsoft Word до автоматизации очистки нескольких DOCX-файлов с помощью C#.

Что вы узнаете:

Удаление гиперссылки в Microsoft Word

Лучший способ для: удаления одной или нескольких гиперссылок без влияния на остальное содержимое документа.

Если нужно удалить лишь небольшое количество ссылок, встроенная в Word команда Удалить гиперссылку является самым безопасным и простым вариантом. Она удаляет возможность перехода по ссылке, сохраняя при этом сам текст.

Этот метод особенно полезен в документах, содержащих оглавления, цитаты, перекрестные ссылки или другие динамические поля, так как затрагивается только выбранная гиперссылка.

Пошаговая инструкция

  1. Откройте документ в Microsoft Word.

  2. Найдите гиперссылку, которую хотите удалить.

  3. Нажмите правой кнопкой мыши на текст ссылки.

  4. Выберите Удалить гиперссылку.

    Контекстное меню Microsoft Word с командой Удалить гиперссылку

Результат: Выбранный текст остается в документе, но перестает быть кликабельным.

Текст в Word после удаления гиперссылки

⚡ Совет: Если вы хотите удалить и гиперссылку, и отображаемый текст, выделите текст и нажмите Delete или Backspace.

Удаление всех гиперссылок в документе Word одновременно

Лучший способ для: быстрого удаления множества гиперссылок из относительно простого документа Word.

Удаление десятков ссылок по одной отнимает много времени. В Word есть сочетание клавиш, которое позволяет убрать гиперссылки из выделенного фрагмента за одну операцию.

Удаление всех гиперссылок в Windows

  1. Нажмите Ctrl + A, чтобы выделить все содержимое документа. Вы также можете вручную выделить только нужный фрагмент.

  2. Нажмите Ctrl + Shift + F9.

Удаление всех гиперссылок на Mac

  1. Нажмите Cmd + A, чтобы выделить содержимое документа.

  2. Нажмите Cmd + Shift + F9.
    ⚡ Совет: Если на вашем Mac клавиша F9 используется для системных функций или медиа, используйте Cmd + Fn + Shift + F9 или нажмите Cmd + 6, чтобы запустить команду Word UnlinkFields без использования клавиши F9.

Результат: Все выбранные гиперссылки преобразуются в обычный текст с сохранением исходной формулировки.

Документ Word после преобразования выбранных гиперссылок в обычный текст

⚠️ Важно: Проверьте динамические поля перед использованием этого сочетания клавиш

Ctrl + Shift + F9 — это не специфическая команда для гиперссылок. Это общая команда Word Разорвать связь с полем.

Это означает, что другие поля, включенные в выделение, также могут быть преобразованы в статический текст. К ним могут относиться:

  • Автоматически созданные оглавления

  • Перекрестные ссылки

  • Поля цитат

  • Другие динамические поля Word

Для отчетов, диссертаций, руководств и других документов, использующих динамические поля, сохраните резервную копию перед использованием этого сочетания клавиш. Также обратите внимание, что Ctrl + A обычно выделяет основной текст документа. Гиперссылки в колонтитулах, возможно, придется обрабатывать отдельно.

Удаление гиперссылок в Word Online

Лучший способ для: эпизодического удаления гиперссылок, когда настольная версия Microsoft Word недоступна.

Если у вас не установлен Word, вы можете открыть документ в Word для интернета, чтобы редактировать гиперссылки прямо в браузере. Это удобно для небольшого количества ссылок и не требует установки программного обеспечения.

Вариант А: Всплывающая панель инструментов (самый быстрый)

  1. Нажмите на текст гиперссылки.

  2. Нажмите на значок удаления ссылки (звено цепи с маленьким «X») в правой части всплывающей панели инструментов.

    Всплывающая панель инструментов Word для интернета со значком удаления гиперссылки

Вариант Б: Контекстное меню

  1. Нажмите правой кнопкой мыши на текст гиперссылки.

  2. Выберите Удалить гиперссылку в контекстном меню.

Не удается удалить гиперссылку в Word для интернета?

Некоторые ссылки в Word для интернета могут выглядеть серыми или быть недоступными для редактирования. Распространенные причины:

  • Исправления: Ссылка была создана или изменена при включенном режиме отслеживания исправлений.

  • Многоабзацные ссылки: Ссылка охватывает несколько абзацев и была создана в настольной версии Word.

Решение: Нажмите Открыть в классическом приложении (находится в выпадающем меню Редактирование на верхней ленте) и удалите ссылки в настольной версии Word.

Пакетное удаление гиперссылок из документов Word с помощью C#

Лучший способ для: разработчиков, автоматизирующих серверную обработку документов, очистку импортированных файлов или обработку больших коллекций документов Word.

Ручные методы становятся неэффективными, когда одну и ту же очистку нужно применить к множеству файлов Word. Это часто встречается при обработке импортированных документов, подготовке отчетов к публикации или архивированию, а также при очистке файлов, созданных другой системой.

В таких случаях удаление гиперссылок можно включить в рабочий процесс C#. В следующем примере используется Spire.Doc for .NET для пакетного удаления гиперссылок из нескольких DOCX-файлов без необходимости установки Microsoft Word.

Шаг 1: Установка библиотеки .NET Word

Установите Spire.Doc for .NET через NuGet, используя консоль диспетчера пакетов или .NET CLI.

Консоль диспетчера пакетов NuGet:

Install-Package Spire.Doc

.NET CLI:

dotnet add package Spire.Doc

После установки необходимые пространства имен можно использовать непосредственно в вашем проекте C#.

Шаг 2: Написание кода C# для пакетного удаления гиперссылок из DOCX-файлов

Следующий пример сканирует входную папку на наличие файлов .docx, идентифицирует поля гиперссылок в каждом документе, удаляет их, сохраняя отображаемый текст, и сохраняет обработанные файлы в отдельную выходную папку.

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.IO;

namespace Remove_Hyperlinks
{
    class Program
    {
        static void Main(string[] args)
        {
            string inputFolder = @"C:\WordFiles\Input";
            string outputFolder = @"C:\WordFiles\Output";

            // Создать выходную папку, если она не существует
            Directory.CreateDirectory(outputFolder);

            // Обработать все файлы DOCX во входной папке
            foreach (string inputFile in Directory.GetFiles(inputFolder, "*.docx"))
            {
                // Пропустить временные файлы Word
                if (Path.GetFileName(inputFile).StartsWith("~$"))
                    continue;

                // Создать экземпляр документа
                Document doc = new Document();

                // Загрузить документ Word
                doc.LoadFromFile(inputFile);

                // Найти все гиперссылки
                List<Field> hyperlinks = FindAllHyperlinks(doc);

                // «Сплющить» (удалить) все гиперссылки
                for (int i = hyperlinks.Count - 1; i >= 0; i--)
                {
                    FlattenHyperlinks(hyperlinks[i]);
                }

                // Сохранить обработанный документ
                string outputFile = Path.Combine(
                    outputFolder,
                    Path.GetFileName(inputFile));

                doc.SaveToFile(outputFile, FileFormat.Docx);
                doc.Close();

                Console.WriteLine(
                    $"Обработано: {Path.GetFileName(inputFile)}");
            }
        }

        // Получить все гиперссылки из тела документа
        private static List<Field> FindAllHyperlinks(Document document)
        {
            List<Field> hyperlinks = new List<Field>();

            foreach (Section section in document.Sections)
            {
                foreach (DocumentObject sec in section.Body.ChildObjects)
                {
                    if (sec.DocumentObjectType == DocumentObjectType.Paragraph)
                    {
                        foreach (DocumentObject para
                                 in (sec as Paragraph).ChildObjects)
                        {
                            if (para.DocumentObjectType ==
                                DocumentObjectType.Field)
                            {
                                Field field = para as Field;

                                if (field.Type == FieldType.FieldHyperlink)
                                {
                                    hyperlinks.Add(field);
                                }
                            }
                        }
                    }
                }
            }

            return hyperlinks;
        }

        // Удалить поле гиперссылки, сохранив отображаемый текст
        private static void FlattenHyperlinks(Field field)
        {
            int ownerParaIndex =
                field.OwnerParagraph.OwnerTextBody.ChildObjects
                    .IndexOf(field.OwnerParagraph);

            int fieldIndex =
                field.OwnerParagraph.ChildObjects.IndexOf(field);

            Paragraph sepOwnerPara =
                field.Separator.OwnerParagraph;

            int sepOwnerParaIndex =
                field.Separator.OwnerParagraph.OwnerTextBody.ChildObjects
                    .IndexOf(field.Separator.OwnerParagraph);

            int sepIndex =
                field.Separator.OwnerParagraph.ChildObjects
                    .IndexOf(field.Separator);

            int endIndex =
                field.End.OwnerParagraph.ChildObjects
                    .IndexOf(field.End);

            int endOwnerParaIndex =
                field.End.OwnerParagraph.OwnerTextBody.ChildObjects
                    .IndexOf(field.End.OwnerParagraph);

            FormatFieldResultText(
                field.Separator.OwnerParagraph.OwnerTextBody,
                sepOwnerParaIndex,
                endOwnerParaIndex,
                sepIndex,
                endIndex);

            // Удалить маркер конца поля
            field.End.OwnerParagraph.ChildObjects.RemoveAt(endIndex);

            // Удалить код поля и разделитель
            for (int i = sepOwnerParaIndex; i >= ownerParaIndex; i--)
            {
                if (i == sepOwnerParaIndex && i == ownerParaIndex)
                {
                    for (int j = sepIndex; j >= fieldIndex; j--)
                    {
                        field.OwnerParagraph.ChildObjects.RemoveAt(j);
                    }
                }
                else if (i == ownerParaIndex)
                {
                    for (int j =
                            field.OwnerParagraph.ChildObjects.Count - 1;
                         j >= fieldIndex;
                         j--)
                    {
                        field.OwnerParagraph.ChildObjects.RemoveAt(j);
                    }
                }
                else if (i == sepOwnerParaIndex)
                {
                    for (int j = sepIndex; j >= 0; j--)
                    {
                        sepOwnerPara.ChildObjects.RemoveAt(j);
                    }
                }
                else
                {
                    field.OwnerParagraph.OwnerTextBody.ChildObjects
                        .RemoveAt(i);
                }
            }
        }

        // Установить цвет текста гиперссылки в черный и удалить подчеркивание
        private static void FormatFieldResultText(
            Body ownerBody,
            int sepOwnerParaIndex,
            int endOwnerParaIndex,
            int sepIndex,
            int endIndex)
        {
            for (int i = sepOwnerParaIndex;
                 i <= endOwnerParaIndex;
                 i++)
            {
                Paragraph para =
                    ownerBody.ChildObjects[i] as Paragraph;

                if (i == sepOwnerParaIndex &&
                    i == endOwnerParaIndex)
                {
                    for (int j = sepIndex + 1; j < endIndex; j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
                else if (i == sepOwnerParaIndex)
                {
                    for (int j = sepIndex + 1;
                         j < para.ChildObjects.Count;
                         j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
                else if (i == endOwnerParaIndex)
                {
                    for (int j = 0; j < endIndex; j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
                else
                {
                    for (int j = 0;
                         j < para.ChildObjects.Count;
                         j++)
                    {
                        FormatText(para.ChildObjects[j] as TextRange);
                    }
                }
            }
        }

        // Установить текст гиперссылки в черный цвет без подчеркивания
        private static void FormatText(TextRange textRange)
        {
            if (textRange == null)
                return;

            textRange.CharacterFormat.TextColor = Color.Black;
            textRange.CharacterFormat.UnderlineStyle =
                UnderlineStyle.None;
        }
    }
}

Шаг 3: Запуск программы

Обновите пути к входной и выходной папкам, поместите файлы DOCX во входную папку и запустите приложение. Очищенные копии будут сохранены в выходной папке с исходными именами файлов.

Для большой партии сначала протестируйте программу на нескольких типичных документах.

Результат:

Выходной документ Word с удаленными гиперссылками с помощью C#

⚠️ Техническое примечание: Этот фрагмент кода C# нацелен на абзацы верхнего уровня. Если ваши документы содержат гиперссылки, вложенные в таблицы, текстовые поля или колонтитулы, логику обхода следует расширить для рекурсивного сканирования этих дочерних элементов.

Код также сбрасывает цвет текста гиперссылки на черный и удаляет подчеркивание. Если вам нужно только изменить цвет или удалить подчеркивание гиперссылок, не удаляя сами ссылки, вы можете изменить форматирование гиперссылок отдельно.

Бонус: Как запретить Word автоматически создавать гиперссылки

Если проблема в том, что Word постоянно превращает URL-адреса и адреса электронной почты в ссылки при вводе текста, вы можете отключить автоматическое создание гиперссылок, вместо того чтобы постоянно удалять их.

В Word для Windows

  1. Нажмите Файл в левом верхнем углу, затем выберите Параметры в нижней части боковой панели.

  2. Выберите категорию Правописание на левой панели.

  3. Нажмите кнопку Параметры автозамены... в верхней части.

  4. Перейдите на вкладку Автоформат при вводе.

  5. Снимите флажок рядом с пунктом адреса Интернета и сетевые пути гиперссылками.

  6. Нажмите ОК, чтобы применить.

В Word для Mac

  1. Нажмите Word в верхней строке меню Apple и выберите Параметры.

  2. Откройте инструмент Автозамена в разделе «Авторство».

  3. Перейдите на вкладку Автоформат при вводе.

  4. Снимите флажок адреса Интернета и сетевые пути гиперссылками.

Изменение этого параметра предотвращает форматирование будущих ссылок при вводе. Это не затронет и не очистит гиперссылки, которые уже сохранены в вашем текущем документе.

Что проверить после удаления гиперссылок

Удаление гиперссылок обычно проходит просто, но после этого стоит проверить несколько деталей, особенно форматирование, динамические поля и ссылки в отдельных областях документа.

  • Проверьте цвет текста и подчеркивание: Если текст остается синим или подчеркнутым, установите цвет шрифта на Авто или подберите его под окружающий текст, а затем при необходимости удалите подчеркивание.

  • Проверьте динамические поля: Если вы использовали сочетание клавиш Ctrl + Shift + F9, проверьте оглавление, перекрестные ссылки и цитаты. Убедитесь, что они случайно не превратились в обычный текст, который нельзя обновить.

  • Проверьте колонтитулы: Ctrl + A не выделяет текст внутри колонтитулов. Дважды щелкните внутри этих областей вручную, чтобы очистить оставшиеся скрытые ссылки.

Часто задаваемые вопросы

В: Удаляет ли удаление гиперссылки отображаемый текст?

О: Нет. Команда Удалить гиперссылку удаляет ссылку, сохраняя отображаемый текст на месте.

В: Как удалить синее подчеркивание, не разрывая ссылку?

О: Выделите гиперссылку, перейдите на вкладку Главная, установите цвет шрифта на Авто или подберите его под окружающий текст, а затем нажмите кнопку Подчеркнутый (или нажмите Ctrl + U), чтобы отключить подчеркивание.

В: Как удалить гиперссылку с изображения в Word?

О: Нажмите правой кнопкой мыши на изображение с гиперссылкой и выберите Удалить гиперссылку. В автоматизированных рабочих процессах гиперссылками на изображениях также можно управлять программно.

В: Можно ли удалить гиперссылки из Word без установки Word?

О: Да. Вы можете открыть и отредактировать файл в браузере с помощью Word для интернета. Для нескольких файлов вы также можете использовать C# с библиотекой, такой как Spire.Doc, для автоматизации удаления.

Заключение

Выбор лучшего способа удаления гиперссылок зависит от контекста вашего редактирования. Для быстрого ручного редактирования идеально подходят встроенные команды Word и сочетания клавиш. Для автоматизированных рабочих процессов или больших коллекций файлов DOCX автоматизация скриптов на C# обеспечивает надежное и масштабируемое решение.