Найти заменить Visio csharp

Файлы Visio используются для создания диаграмм, таких как организационные диаграммы, блок-схемы и т. д. Такие диаграммы содержат различные формы, которые также могут содержать текстовую информацию. В некоторых случаях может потребоваться обновить текст в любой форме схемы Visio. В соответствии с такими требованиями в этой статье рассказывается, как найти и заменить текст в документах Visio программными средствами на C#.

Поиск и замена текста в диаграмме Visio — установка C# API

Aspose.Diagram for .NET API поддерживает создание, редактирование и управление файлами Visio. Вы можете легко настроить API, загрузив DLL-файл из раздела Новые версии. Кроме того, вы можете установить API из галереи NuGet с помощью следующей команды установки в Microsoft Visual Studio:

PM> Install-Package Aspose.Diagram

Программный поиск и замена текста в диаграмме Visio на C#

Файлы Visio могут содержать несколько фигур на схеме. Вы можете найти и заменить текст, выполнив следующие действия:

  1. Подготовьте коллекцию старых и новых текстовых строк.
  2. Загрузите входную диаграмму и выполните итерацию по каждой фигуре.
  3. Сохраните выходную схему Visio.

В следующем фрагменте кода показано, как программно найти и заменить текст в файле Visio формата VSD или VSDX с помощью C#:

// Подготовьте коллекцию старого и нового текста
Dictionary<string, string> replacements = new Dictionary<string, string>();
replacements.Add("[[CompanyName]]", "Research Society of XYZ");
replacements.Add("[[EmployeeName]]", "James Bond");
replacements.Add("[[SubjectTitle]]", "The affect of the internet on social behavior in the industrialize world");
replacements.Add("[[TimePeriod]]", DateTime.Now.AddYears(-1).ToString("dd/MMMM/yyyy") + " -- " + DateTime.Now.ToString("dd/MMMM/yyyy"));
replacements.Add("[[SubmissionDate]]", DateTime.Now.AddDays(-7).ToString("dd/MMMM/yyyy"));
replacements.Add("[[AmountReq]]", "$100,000");
replacements.Add("[[DateApproved]]", DateTime.Now.AddDays(1).ToString("dd/MMMM/yyyy"));

// Диаграмма нагрузки
Diagram diagram = new Diagram("FindReplaceText.vsdx");

// Получить страницу по названию
Page page = diagram.Pages.GetPage("Page-1");

// Итерация по формам страницы
foreach (Shape shape in page.Shapes)
{
    foreach (KeyValuePair<string, string> kvp in replacements)
    {
        foreach (FormatTxt txt in shape.Text.Value)
        {
            Txt tx = txt as Txt;
            if (tx != null && tx.Text.Contains(kvp.Key))
            {
                // Найти и заменить текст фигуры
                tx.Text = tx.Text.Replace(kvp.Key, kvp.Value);
            }
        }
    }
}
// Сохраните диаграмму
diagram.Save("FindReplaceText_out.vsdx", SaveFileFormat.Vsdx);

Вывод

В заключение вы узнали, как находить и заменять текст на схемах Visio. Кроме того, вы можете обновить пример кода до других перегрузок для замены текста. Например, замена только первого вхождения или всех вхождений совпадающего текста в соответствии с вашими требованиями. Вы можете узнать о некоторых других функциях API, посетив документацию. Кроме того, в случае возникновения каких-либо вопросов, пожалуйста, пишите нам на форум.

Смотрите также

[Вставка или удаление верхнего и нижнего колонтитула в файлах VSD VSDX на C#] (https://blog.aspose.com/ru/2022/04/10/insert-remove-header-footer-vsd-vsdx-csharp/)