查找替换 Visio csharp

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 文件可以在图表中包含多个形状。您可以按照以下步骤查找和替换文本:

  1. 准备一组新旧文本字符串。
  2. 加载输入图并遍历每个形状。
  3. 保存输出 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 的其他几个功能。此外,如有任何疑问,请随时在 论坛 上给我们写信。

也可以看看

在 C# 中的 VSD VSDX 文件中插入或删除页眉和页脚