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の他のいくつかの機能を学ぶことができます。また、ご不明な点がございましたら、フォーラムまでお気軽にお問い合わせください。