Importar gráficos do Mekko Graphics

Importe facilmente gráficos Mekko Graphics e seus dados para think-cell.

Importar gráficos do Mekko Graphics para o think-cell

A ferramenta Import Mekko Graphics to think-cell converte gráficos Mekko Graphics em think-cell charts. Você não precisa ter o Mekko Graphics instalado para usar a ferramenta de importação.

Para importar gráficos do Mekko Graphics para o think-cell, siga estas etapas:

  1. No PowerPoint, selecione um ou mais gráficos Mekko Graphics em um slide ou selecione slides que contenham gráficos Mekko Graphics.
  2. Na faixa de opções, selecione think-cell > Elements > Tools Tools Menu icon > Import Mekko Graphics to think-cell ou Insert > think-cell > Tools Tools Menu icon > Import Mekko Graphics to think-cell.

Depois de selecionar Import Mekko Graphics to think-cell, o think-cell substitui os gráficos do Mekko Graphics que você selecionou com gráficos think-cell. Todos os outros conteúdos do slide permanecem os mesmos. Após cada slide em que você substituiu os gráficos Mekko Graphics, o think-cell insere um slide de backup com os gráficos Mekko Graphics originais.

Você pode importar a maioria dos gráficos do Mekko Graphics para o think-cell, com as seguintes exceções:

  • Gráficos de Gantt, barra flutuante e gráfico de barra flutuante horizontal
  • Outros elementos da Mekko Graphics, como as Harvey Balls

Se um gráfico ou elemento do Mekko Graphics não puder ser importado, o think-cell exibirá uma mensagem.

Importar gráficos com linhas ou colunas de dados

Se um gráfico Mekko Graphics tiver linhas ou colunas de dados, o think-cell importa esse gráfico como um gráfico think-cell com uma tabela de dados (consulte Gráficos com tabelas de dados). Os gráficos Mekko Graphics podem representar os mesmos dados tanto na tabela de dados quanto no gráfico. Atualmente, o think-cell não suporta a representação dos mesmos dados tanto na tabela de dados quanto no gráfico. Se um gráfico Mekko Graphics representar os mesmos dados tanto na tabela de dados quanto no gráfico, o think-cell importará esse gráfico sem uma tabela de dados.

Estilo e formato de gráficos importados

O think-cell não importa o estilo e a formatação dos gráficos do Mekko Graphics. No entanto, após importar um gráfico Mekko Graphics, é fácil recriar o estilo e a formatação dos gráficos no think-cell.

Gráficos de estilo

Quando o think-cell importa um gráfico Mekko Graphics, o gráfico importado adota o estilo e a formatação do arquivo de estilos do think-cell ativo (consulte Set up think-cell style files). Você pode formatar e estilizar gráficos importados como qualquer outro gráfico do think-cell (consulte Gráficos de estilo e formato).

A imagem a seguir mostra como usar o menu de contexto dos gráficos para adicionar um eixo Y a um gráfico importado.

Use think-cell's context menu to add axis

Formatar números

A maioria das formatações numéricas nos gráficos Mekko Graphics não é importada para os think-cell charts. Você pode alterar a formatação de números facilmente no think-cell (consulte Formatar rótulos de gráfico).

A imagem a seguir mostra como usar a mini barra de ferramentas para aplicar o formato numérico da moeda do gráfico Mekko Graphics original ao gráfico importado.

Recomendamos comparar seus gráficos Mekko Graphics e gráficos importados para garantir que eles sejam consistentes entre si. Alterne entre os slides originais e os de backup para comparar e fazer as alterações necessárias nos gráficos importados. Quando estiver satisfeito com os gráficos importados, você pode excluir os slides de backup.

Editar dados importados do gráfico

think-cell importa os dados de um gráfico Mekko Graphics para a planilha de dados dos gráficos importados. Você pode editar os dados de um gráfico importado como os de qualquer outro gráfico think-cell (consulte Introdução às planilhas de dados de elementos).

Mostrar séries ou categorias ocultas

think-cell importa os dados de séries ou categorias ocultas em um gráfico Mekko Graphics como linhas ou colunas ocultas na planilha de dados dos gráficos importados. Para mostrar séries ou categorias ocultas no gráfico importado, selecione as colunas ou linhas que contêm os dados ocultos na planilha de dados do gráfico, clique com o botão direito do mouse na seleção e selecione Unhide. Para saber mais, consulte Suporte da Microsoft.

Automatize o processo de importação

Somente Windows

No Windows, você pode usar as funções da API do think-cell para importar programaticamente gráficos do Mekko Graphics para o think-cell ou inspecioná-los. O ImportMekkoGraphicsCharts substitui os gráficos do Mekko Graphics pelos gráficos do think-cell. O GetMekkoGraphicsXML extrai a definição XML de um gráfico do Mekko Graphics.

Importar gráficos Mekko Graphics

Descrição

Esta função substitui todos os gráficos Mekko Graphics na matriz de formas que lhe são passadas por um think-cell chart equivalente. Todas as formas devem estar no mesmo slide. Antes de modificar o slide, a função faz uma cópia do slide não modificado e a insere diretamente após a versão modificada.

Se o slide não foi modificado, por exemplo, porque a matriz não continha nenhum gráfico Mekko Graphics, a função retorna Nothing/null. Caso contrário, a função retorna uma referência à cópia não modificada do slide.

VBA

Assinatura
tcPpAddIn.ImportMekkoGraphicsCharts ( _
    ashp As PowerPoint.Shape() _
) As PowerPoint.Slide
Exemplo

Para usar este exemplo, adicione-o a um módulo no PowerPoint. Para saber mais, consulte Visual Basic for Applications.

Ao executar ImportAll em uma apresentação, os slides serão exibidos na apresentação e todos os gráficos Mekko Graphics visíveis serão substituídos por gráficos do think-cell equivalentes, criando uma cópia de cada slide que contenha gráficos Mekko Graphics antes de modificá-lo.

Option Explicit

Sub ImportAll()

    ' Get reference to think-cell Object

    Dim tcPpAddIn As Object
    Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object

    ' Iterate over copy of original Slides to avoid
    ' iterating over copies inserted by ImportMekkoGraphicsCharts again

    Dim SlidesCopy As New Collection
    Dim Slide As PowerPoint.Slide
    For Each Slide In ActivePresentation.Slides
        SlidesCopy.Add Slide
    Next Slide
    
    For Each Slide In SlidesCopy
    
        ' Construct Array containing only visible shapes on slide
        
        Dim visibleShapes() As PowerPoint.Shape
        ReDim visibleShapes(1 To Slide.Shapes.Count)
        Dim shapeIndex As Long
        For shapeIndex = 1 To Slide.Shapes.Count
            If Slide.Shapes(shapeIndex).Visible Then
                Set visibleShapes(shapeIndex) = Slide.Shapes(shapeIndex)
            End If
        Next shapeIndex
        
        ' Pass Array to ImportMekkoGraphics and store return value
        
        Dim CopySlide As PowerPoint.Slide
        Set CopySlide = tcPpAddIn.ImportMekkoGraphicsCharts(visibleShapes)
        
        ' If Slide was modified...
        If Not CopySlide Is Nothing Then
        ' ... do things with copy of unmodified slide
        End If
    Next Slide
End Sub

C#

Assinatura
PowerPoint.Slide tcPpAddIn.ImportMekkoGraphicsCharts(
    PowerPoint.Shape[] ashp
);
Exemplo

Para usar este exemplo, no modelo de projeto C# PowerPoint VSTO Add-in, adicione este método à classe ThisAddIn. Para saber mais, consulte C# e Desenvolvimento de suplementos.

private void ImportAll(PowerPoint.Presentation presentation)
    {
        var tcPpAddIn = presentation.Application.COMAddIns.Item("thinkcell.addin").Object;
        foreach (PowerPoint.Slide slide in presentation.Slides.Cast<PowerPoint.Slide>().ToList())
        {
            PowerPoint.Slide slideCopy = tcPpAddIn.ImportMekkoGraphicsCharts(
                slide.Shapes.Cast<PowerPoint.Shape>().ToArray()
            );
        }
    }

Para executar ImportAll em cada apresentação aberta, adicione a linha ThisAddIn_Startup a seguir ao método.

Application.PresentationOpen += new PowerPoint.EApplication_PresentationOpenEventHandler(ImportAll);

GetMekkoGraphicsXML

Descrição

Esta função retorna o código XML do gráfico Mekko Graphics em shp como uma sequência. Ela não modifica a forma passada a ela.

Se shp não for um gráfico Mekko Graphics, uma mensagem de erro E_INVALIDARG (0x80070057) é exibida.

VBA

Assinatura
tcPpAddIn.GetMekkoGraphicsXML ( _
    shp As PowerPoint.Shape _
) As String
Exemplo

Para usar este exemplo, adicione o seguinte código a um módulo no PowerPoint. Para saber mais, consulte Visual Basic for Applications.

Option Explicit

Sub GetMekkoGraphicsXMLOfAllShapes()

    ' Get reference to think-cell Object

    Dim tcPpAddIn As Object
    Set tcPpAddIn = Application.COMAddIns("thinkcell.addin").Object

    ' Go through the slides in the presentation and
    ' output the XML of each Mekko Graphics chart on the slide
    ' to the debug console

    Dim slide As PowerPoint.slide
    For Each slide In Application.ActivePresentation.Slides
        Dim shape As PowerPoint.shape
        For Each shape In slide.Shapes
            On Error Resume Next ' skip over shapes that are not Mekko Graphics charts
            Debug.Print tcPpAddIn.GetMekkoGraphicsXML(shape)
        Next shape
    Next slide
End Sub

C#

Assinatura
string tcPpAddIn.GetMekkoGraphicsXML(
    PowerPoint.Shape shp
);
Exemplo

Para usar este exemplo, substitua o código em Program.cs de um Console App pelo exemplo.

A amostra requer referências ao Microsoft PowerPoint 16.0 Object Library e Microsoft Office 16.0 Object Library (consulte C# para obter detalhes).

Ao executar o aplicativo a apresentação será exibida no C:\Samples\GetMekkoGraphicsXML\presentation.pptx e o XML dos gráficos Mekko Graphics contidos na apresentação no console.

using PowerPoint = Microsoft.Office.Interop.PowerPoint;
using Office = Microsoft.Office.Core;

namespace Sample
{
    class Program
    {
        static void Main()
        {
            var ppapp = new PowerPoint.Application();
            var presentation = ppapp.Presentations.Open(
                "C:\\Samples\\GetMekkoGraphicsXML\\presentation.pptx",
                /*ReadOnly*/Office.MsoTriState.msoTrue,
                /*Untitled*/Office.MsoTriState.msoTrue,
                /*WithWindow*/Office.MsoTriState.msoFalse
            );

            var tcPpAddIn = ppapp.COMAddIns.Item("thinkcell.addin").Object;
            foreach (PowerPoint.Slide slide in presentation.Slides)
            {
                foreach (PowerPoint.Shape shape in slide.Shapes)
                {
                    string xml = tcPpAddIn.GetMekkoGraphicsXML(shape);
                    Console.WriteLine(xml);
                }
            }

            presentation.Close();
            ppapp.Quit();
        }
    }
}