Localizar Substituir Visio csharp

Os arquivos do Visio são usados para criar diagramas como organogramas, fluxogramas, etc. Esses diagramas compreendem diferentes formas que também podem conter informações de texto. Em alguns casos de uso, pode ser necessário atualizar o texto em qualquer forma de um diagrama do Visio. De acordo com esses requisitos, este artigo aborda como localizar e substituir texto em desenhos do Visio programaticamente em C#.

Pesquisar e substituir texto no diagrama do Visio – instalação da API C#

Aspose.Diagram for .NET API oferece suporte à criação, edição e manipulação de arquivos do Visio. Você pode configurar facilmente a API baixando o arquivo DLL da seção New Releases. Como alternativa, você pode instalar a API da galeria NuGet com o comando de instalação abaixo no Microsoft Visual Studio:

PM> Install-Package Aspose.Diagram

Localizar e substituir texto no diagrama do Visio programaticamente em C#

Os arquivos do Visio podem conter várias formas em um diagrama. Você pode localizar e substituir texto seguindo as etapas abaixo:

  1. Prepare uma coleção de sequências de texto antigas e novas.
  2. Carregue o diagrama de entrada e itere através de cada forma.
  3. Salve o diagrama de saída do Visio.

O trecho de código a seguir demonstra como localizar e substituir texto no arquivo do Visio no formato VSD ou VSDX programaticamente usando C#:

// Preparar uma coleção de texto antigo e novo
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"));

// Diagrama de carga
Diagram diagram = new Diagram("FindReplaceText.vsdx");

// Obter página por nome
Page page = diagram.Pages.GetPage("Page-1");

// Iterar pelas formas de uma página
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))
            {
                // Localizar e substituir o texto de uma forma
                tx.Text = tx.Text.Replace(kvp.Key, kvp.Value);
            }
        }
    }
}
// Salve o diagrama
diagram.Save("FindReplaceText_out.vsdx", SaveFileFormat.Vsdx);

Conclusão

Concluindo, você aprendeu como localizar e substituir texto em diagramas do Visio. Além disso, você pode atualizar o código de exemplo para outras sobrecargas para substituir o texto. Por exemplo, substituindo apenas a primeira ocorrência ou todas as ocorrências do texto correspondente com base em seus requisitos. Você pode aprender vários outros recursos da API visitando a documentação. Além disso, em caso de dúvidas, sinta-se à vontade para nos escrever no fórum.

Veja também

Inserir ou remover cabeçalho e rodapé em arquivos VSD VSDX em C#