Importa grafici Mekko Graphics

Importa comodamente i grafici Mekko Graphics e i relativi dati in think-cell.

Importazione dei grafici Mekko Graphics in think-cell

Lo strumento Import Mekko Graphics to think-cell converte i grafici Mekko Graphics in grafici think-cell. Non è necessario installare Mekko Graphics per utilizzare lo strumento di importazione.

Per importare i grafici Mekko Graphics in think-cell, attenersi alla seguente procedura:

  1. In PowerPoint, selezionare prima uno o più grafici Mekko Graphics presenti su una diapositiva, o selezionare diapositive contenenti grafici Mekko Graphics.
  2. Sulla barra multifunzione, selezionare 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 volta selezionato Import Mekko Graphics to think-cell, think-cell sostituisce i grafici Mekko Graphics selezionati con i grafici think-cell. Tutti gli altri contenuti delle diapositive rimangono invariati. Dopo ogni diapositiva in cui sono stati sostituiti i grafici Mekko Graphics, think-cell inserisce una diapositiva di backup con i grafici Mekko Graphics originali.

È possibile importare la maggior parte dei grafici Mekko Graphics in think-cell, con le seguenti eccezioni:

  • grafici di Gantt, a barra mobile e a barra mobile orizzontale
  • Altri elementi di Mekko Graphics, come le Harvey Ball

Se non è possibile importare un grafico o un elemento Mekko Graphics, think-cell mostra un messaggio.

Importare grafici con righe o colonne di dati

Se un grafico Mekko Graphics contiene righe o colonne di dati, think-cell lo importa come un think-cell chart con una tabella dati (vedere Grafici con tabelle dati). I grafici Mekko Graphics possono rappresentare gli stessi dati sia nella tabella dati sia nel grafico, think-cell attualmente non supporta la rappresentazione degli stessi dati sia nella tabella dati sia nel grafico. Se un grafico Mekko Graphics rappresenta gli stessi dati sia nella tabella dati sia nel grafico, think-cell lo importerà senza una tabella dati.

Grafici importati con stile e formato

think-cell non importa lo stile e la formattazione dei grafici Mekko Graphics. Tuttavia, dopo aver importato un grafico Mekko Graphics, è facile ricrearne lo stile e la formattazione in think-cell.

Grafici di stile

Quando think-cell importa un grafico Mekko Graphics, il grafico importato adotta lo stile e la formattazione del file di stile think-cell attivo (vedere Set up think-cell style files). È possibile formattare e modificare lo stile dei grafici importati come con qualsiasi altro think-cell chart (vedere Modificare stile e formato dei grafici).

L'immagine seguente mostra come utilizzare il menu di scelta rapida del grafico per aggiungere un asse Y a un grafico importato.

Use think-cell's context menu to add axis

Formattare i numeri

La maggior parte della formattazione dei numeri nei grafici Mekko Graphics non viene importata nei grafici think-cell. È possibile modificare facilmente la formattazione dei numeri in think-cell (vedere Formattare le etichette dei grafici).

L’immagine seguente mostra come utilizzare la barra di formattazione rapida per applicare il formato del numero di valuta del grafico Mekko Graphics originale al grafico importato.

Si consiglia di confrontare i grafici Mekko Graphics e i grafici importati per avere la certezza che siano coerenti tra loro. Passare dalle diapositive originali a quelle di backup per un confronto e apportare le modifiche necessarie ai grafici importati. Una volta soddisfatti dei grafici importati, è possibile eliminare le diapositive di backup.

Modificare i dati dei grafici importati

think-cell importa i dati da un grafico Mekko Graphics nel foglio dati del grafico importato. È possibile modificare i dati di un grafico importato come quelli di qualsiasi altro grafico think-cell (vedere Introduzione alle schede tecniche degli elementi).

Mostrare serie o categorie nascoste

think-cell importa i dati da serie o categorie nascoste in un grafico Mekko Graphics come righe o colonne nascoste nel foglio dati del grafico importato. Per visualizzare le serie o le categorie nascoste nel grafico importato, selezionare le colonne o le righe che contengono i dati nascosti nel foglio dati del grafico, fare clic con il pulsante destro del mouse sulla selezione e selezionare Unhide. Per ulteriori informazioni, vedere Assistenza Microsoft.

Automatizzare il processo di importazione

Solo Windows

In Windows, è possibile utilizzare le funzioni API di think-cell per importare in modo programmatico i grafici Mekko Graphics in think-cell o ispezionarli. ImportMekkoGraphicsCharts sostituisce i grafici Mekko Graphics con think-cell chart. GetMekkoGraphicsXML estrae la definizione XML di un grafico Mekko Graphics.

ImportMekkoGraphicsCharts

Descrizione

Questa funzione sostituisce tutti i grafici Mekko Graphics nell'array di forme passate con un grafico think-cell equivalente. Le forme devono essere tutte sulla stessa diapositiva. Prima di modificare la diapositiva, la funzione eseguirà una copia della diapositiva non modificata e la inserirà subito dopo la versione modificata.

Restituisce Nothing/null se la diapositiva non è stata modificata, ad esempio perché l'array non conteneva grafici Mekko Graphics. In caso contrario, la funzione restituisce un riferimento alla copia della diapositiva non modificata.

VBA

Firma
tcPpAddIn.ImportMekkoGraphicsCharts ( _
    ashp As PowerPoint.Shape() _
) As PowerPoint.Slide
Esempio

Per utilizzare questo esempio, aggiungerlo a un modulo in PowerPoint. Per ulteriori informazioni, vedere Visual Basic for Applications.

Se si esegue ImportAll su una presentazione, tutti ii grafici Mekko Graphics visibili sulle diapositive della presentazione saranno sostituiti da grafici think-cell equivalenti e verrà creata una copia di tutte le diapositive contenenti grafici Mekko Graphics prima della loro modifica.

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#

Firma
PowerPoint.Slide tcPpAddIn.ImportMekkoGraphicsCharts(
    PowerPoint.Shape[] ashp
);
Esempio

Per utilizzare questo esempio, nel modello di progetto PowerPoint VSTO Add-in C#, aggiungere questo metodo alla classe ThisAddIn. Per ulteriori informazioni, vedere C# e Sviluppo di add-in.

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

Per eseguire ImportAll su ogni presentazione aperta, aggiungere la seguente riga al metodo ThisAddIn_Startup.

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

GetMekkoGraphicsXML

Descrizione

Questa funzione restituisce il codice XML del grafico Mekko Graphics in shp sotto forma di stringa. Non modifica la forma che è stata passata.

Se shp non è un grafico Mekko, viene visualizzato un errore E_INVALIDARG (0x80070057).

VBA

Firma
tcPpAddIn.GetMekkoGraphicsXML ( _
    shp As PowerPoint.Shape _
) As String
Esempio

Per utilizzare questo esempio, aggiungere il seguente codice a un modulo in PowerPoint. Per ulteriori informazioni, vedere 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#

Firma
string tcPpAddIn.GetMekkoGraphicsXML(
    PowerPoint.Shape shp
);
Esempio

Per utilizzare questo esempio, sostituire il codice nel Program.cs di un Console App con l'esempio.

Il campione richiede riferimenti a Microsoft PowerPoint 16.0 Object Library e Microsoft Office 16.0 Object Library (vedere C# per i dettagli).

L'esecuzione dell'applicazione eseguirà la presentazione in C:\Samples\GetMekkoGraphicsXML\presentation.pptx e stamperà l'XML dei grafici Mekko Graphics in essa contenuti sulla 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();
        }
    }
}