Visio 文件用于创建图表,如组织结构图、流程图等。这些图表包含不同的形状,也可以包含文本信息。在某些用例中,您可能需要更新任何形状的 Visio 图表中的文本。根据这样的要求,本文介绍了如何在 C# 中以编程方式查找和替换 Visio 绘图中的文本。
在 Visio 图表中搜索和替换文本 - C# API 安装
Aspose.Diagram for .NET API 支持创建、编辑和操作 Visio 文件。您可以通过从 New Releases 部分下载 DLL 文件轻松配置 API。或者,您可以在 Microsoft Visual Studio 中使用以下安装命令从 NuGet 库安装 API:
PM> Install-Package Aspose.Diagram
在 C# 中以编程方式查找和替换 Visio 图表中的文本
Visio 文件可以在图表中包含多个形状。您可以按照以下步骤查找和替换文本:
- 准备一组新旧文本字符串。
- 加载输入图并遍历每个形状。
- 保存输出 Visio 图表。
以下代码片段演示了如何使用 C# 以编程方式查找和替换 VSD 或 VSDX 格式 Visio 文件中的文本:
// 准备集合新旧文本
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 的其他几个功能。此外,如有任何疑问,请随时在 论坛 上给我们写信。