查找替換 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 文件中插入或刪除頁眉和頁腳