Importar gráficos de Mekko Graphics

Importe cómodamente gráficos de Mekko Graphics y sus datos a think-cell.

Importar gráficos de Mekko a think-cell

La herramienta Import Mekko Graphics to think-cell convierte los gráficos de Mekko Graphics en gráficos de think-cell. No es necesario instalar Mekko Graphics para utilizar la herramienta de importador.

Para importar gráficos de Mekko Graphics a think-cell, siga estos pasos:

  1. En PowerPoint, primero seleccione uno o más gráficos Mekko Graphics de una diapositiva o seleccione diapositivas que contengan gráficos Mekko Graphics.
  2. En la cinta, seleccione think-cell > Elements > Tools Tools Menu icon > Import Mekko Graphics to think-cell o Insert > think-cell > Tools Tools Menu icon > Import Mekko Graphics to think-cell.

Una vez seleccionado Import Mekko Graphics to think-cell, think-cell sustituye los gráficos de Mekko Graphics que seleccionó por gráficos think-cell. El resto del contenido de la diapositiva sigue siendo el mismo. Después de cada diapositiva en la que sustituyó los gráficos de Mekko Graphics, think-cell inserta una diapositiva de respaldo con los gráficos originales de Mekko Graphics.

Puede importar la mayoría de los gráficos de Mekko Graphics a think-cell, con las siguientes excepciones:

  • Diagramas de Gantt, barra flotante y barra flotante horizontal
  • Otros elementos gráficos de Mekko Graphics, como las Harvey Balls

Si no se puede importar un gráfico o elemento de Mekko Graphics, think-cell muestra un mensaje.

Importar gráficos con filas o columnas de datos

Si un gráfico de Mekko Graphics tiene filas o columnas de datos, think-cell importa ese gráfico como un gráfico de think-cell con una tabla de datos (consulte Gráficos con tablas de datos). Los gráficos de Mekko Graphics pueden representar los mismos datos tanto en la tabla de datos como en el gráfico. think-cell actualmente no admite representar los mismos datos tanto en la tabla de datos como en el gráfico. Si un gráfico de Mekko Graphics representa los mismos datos tanto en la tabla de datos como en el gráfico, think-cell importará ese gráfico sin una tabla de datos.

Estilo y formato de gráficos importados

think-cell no importa el estilo y el formato de los gráficos de Mekko Graphics. Sin embargo, después de importar un gráfico de Mekko Graphics, es fácil recrear el estilo y el formato del gráfico en think-cell.

Estilo de los gráficos

Cuando think-cell importa un gráfico de Mekko Graphics, el gráfico importado adopta el estilo y el formato del archivo de estilos de think-cell activo (consulte Set up think-cell style files). Puede aplicar formato y estilo a los gráficos importados como cualquier otro gráfico de think-cell (consulte Gráficos de estilo y formato).

La siguiente imagen muestra cómo utilizar el menú contextual del gráfico para agregar un eje Y a un gráfico importado.

Use think-cell's context menu to add axis

Formato de números

La mayor parte del formato de número en los gráficos de Mekko Graphics no se importa a los gráficos de think-cell. Puede cambiar fácilmente el formato de los números en think-cell (consulte Formato de etiquetas de gráfico).

La siguiente imagen muestra cómo utilizar la minibarra de herramientas para aplicar el formato de número de moneda del gráfico original de Mekko Graphics al gráfico importado.

Recomendamos comparar los gráficos de Mekko Graphics y los gráficos importados para garantizar que sean coherentes entre sí. Cambie entre las diapositivas originales y de copia de seguridad para comparar y realizar los cambios necesarios en los gráficos importados. Cuando esté satisfecho con los gráficos importados, puede eliminar las diapositivas de copia de seguridad.

Editar datos de gráfico importados

think-cell importa los datos de un gráfico de Mekko Graphics a la hoja de datos del gráfico importado. Puede editar los datos de un gráfico importado como los de cualquier otro gráfico de think-cell (consulte Introducción a las hojas de datos de elementos).

Mostrar series o categorías ocultas

think-cell importa los datos de series o categorías ocultas en un gráfico de Mekko Graphics como filas o columnas ocultas en la hoja de datos del gráfico importado. Para mostrar series o categorías ocultas en el gráfico importado, seleccione las columnas o filas que contienen los datos ocultos en la hoja de datos del gráfico, haga clic con el botón derecho en la selección y seleccione Unhide. Para obtener más información, consulte Soporte de Microsoft.

Automatizar el proceso de importación

Solo Windows

En Windows, se pueden utilizar las funciones API de think-cell para importar mediante programación gráficos Mekko Graphics a think-cell o inspeccionarlos. ImportMekkoGraphicsCharts sustituye los gráficos de Mekko Graphics por gráficos de think-cell. GetMekkoGraphicsXML extrae la definición XML de un gráfico de Mekko Graphics.

ImportMekkoGraphicsCharts

Descripción

Esta función sustituye todos los gráficos de Mekko Graphics de la matriz de formas que le ha pasado con un gráfico de think-cell equivalente. Todas las formas deben estar en la misma diapositiva. Antes de modificar la diapositiva, la función hará una copia de la diapositiva sin modificar y la insertará directamente después de la versión modificada.

Si la diapositiva no se modificó, por ejemplo porque la matriz no contenía ningún gráfico de Mekko Graphics, devuelve la función Nothing/null. De lo contrario, la función devuelve una referencia a la copia no modificada de la diapositiva.

VBA

Signatura
tcPpAddIn.ImportMekkoGraphicsCharts ( _
    ashp As PowerPoint.Shape() _
) As PowerPoint.Slide
Ejemplo

Para utilizar este ejemplo, añádalo a un módulo en PowerPoint. Consulte Visual Basic para Aplicaciones para obtener más información.

Ejecutar ImportAll en una presentación, recorrerá las diapositivas de la presentación y sustituirá todos los gráficos visibles de Mekko Graphics por gráficos equivalentes de think-cell, haciendo una copia de cada diapositiva que contenga uno antes de modificarla.

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#

Signatura
PowerPoint.Slide tcPpAddIn.ImportMekkoGraphicsCharts(
    PowerPoint.Shape[] ashp
);
Ejemplo

Para usar este ejemplo, en la plantilla de proyecto PowerPoint VSTO Add-in C#, agregue este método a la clase ThisAddIn. Consulte C# y Desarrollo de complementos para obtener más información.

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()
            );
        }
    }

Añada la siguiente línea al método ThisAddIn_Startup para que se ejecute ImportAll en cada presentación que se abra:

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

GetMekkoGraphicsXML

Descripción

Esta función devuelve el código XML de los gráficos de Mekko Graphics en shp como una cadena. Esto no modifica la forma que se le pasa.

Si shp no es un gráfico de Mekko Graphics, se produce un error de E_INVALIDARG (0x80070057).

VBA

Signatura
tcPpAddIn.GetMekkoGraphicsXML ( _
    shp As PowerPoint.Shape _
) As String
Ejemplo

Para utilizar este ejemplo, añada el siguiente código a un módulo en PowerPoint. Consulte Visual Basic para Aplicaciones para obtener más información.

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#

Signatura
string tcPpAddIn.GetMekkoGraphicsXML(
    PowerPoint.Shape shp
);
Ejemplo

Para utilizar este ejemplo, sustituya el código Program.cs de una Console App por el ejemplo.

La muestra requiere referencias a Microsoft PowerPoint 16.0 Object Library y Microsoft Office 16.0 Object Library (consulte C# para obtener más detalles).

La ejecución de la aplicación recorrerá la presentación en C:\Samples\GetMekkoGraphicsXML\presentation.pptx e imprimirá en la consola el XML de los gráficos de Mekko Graphics contenidos en ella.

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();
        }
    }
}