Файлы Visio используются для создания диаграмм, таких как организационные диаграммы, блок-схемы и т. д. Такие диаграммы содержат различные формы, которые также могут содержать текстовую информацию. В некоторых случаях может потребоваться обновить текст в любой форме схемы Visio. В соответствии с такими требованиями в этой статье рассказывается, как найти и заменить текст в документах Visio программными средствами на C#.
- Поиск и замена текста в диаграмме Visio — установка C# API
- Программный поиск и замена текста в диаграмме 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 могут содержать несколько фигур на схеме. Вы можете найти и заменить текст, выполнив следующие действия:
- Подготовьте коллекцию старых и новых текстовых строк.
- Загрузите входную диаграмму и выполните итерацию по каждой фигуре.
- Сохраните выходную схему 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/)