Come posso salvare un grafico in un file PNG o GIF in Microsoft Excel?


27

Come posso salvare un grafico in un file PNG o GIF in Microsoft Excel?

So che posso salvare come file HTML e utilizzare l'immagine creata lì, ma sospetto che ci sia un modo che non crei altri ingombri di file che non voglio. Sono felice di installare un componente aggiuntivo se questa è l'opzione consigliata.

Sto usando Excel 2003 e 2007 se è importante.


Ecco una spiegazione e un collegamento a un componente aggiuntivo di Excel (gratuito) che lo farà per te: Procedura avanzata per l'esportazione dei grafici
Jon Peltier,

Risposte:


34

Excel non ha alcun supporto accessibile all'utente per questa funzionalità, ma puoi facilmente aggirare questo o scavare in VBA, dove questa funzionalità è fornita:


Esportazione "One-shot"

  • Seleziona il grafico (l'intero grafico, non un componente interno; quindi seleziona il bordo).
  • Copialo (ctrl-c, fai clic con il pulsante destro del mouse, qualunque cosa ti piaccia).
  • Apri MS Paint.
  • Incolla (potresti voler prima ridurre al minimo le dimensioni dell'immagine, verrà ingrandita per adattarla, ma non ridotta).
  • Salva come desiderato.

Esportazione in blocco

Probabilmente vorrai esaminare l'utilizzo ActiveChart.Exportin una macro VBA, questo ti consente di specificare un percorso di file e quindi Excel fa il lavoro.

Di seguito è riportato un prototipo funzionante che ho appena messo insieme. Esegui questo e tutti i grafici nella cartella di lavoro attiva verranno esportati nella stessa cartella di quel file, in formato PNG, con l' _chart##aggiunta del nome del file (dove ##c'è un numero crescente).

Esso non effettua alcun controllo di sicurezza (così sarà sovrascrivere i file!) E non contiene alcun controllo degli errori. Esso non funziona se non si è ancora salvato la cartella di lavoro, la posizione è di sola lettura o di qualsiasi altra cosa che impedisce la scrittura la posizione del file. L'ho provato solo in Excel 2003 (dato che al momento è tutto ciò che devo fare).

In altre parole: utilizzare a proprio rischio , questo è inteso solo come esempio di lavoro di base .

'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
    If num < 10 Then
        NiceFileNumber = "0" & num
    Else
        NiceFileNumber = num
    End If
End Function

'the real function'
Sub ExportAllCharts()
    Dim i As Integer, exportCount As Integer
    Dim fileNum As String, fileBase As String
    Dim sheetObj As Worksheet
    Dim chartObj As Chart

    'current file location and name, with extension stripped'
    fileBase = Left(ThisWorkbook.FullName, InStrRev(ThisWorkbook.FullName, ".") - 1)
    exportCount = 0

    'First, export all charts that are in their own sheets'
    For Each chartObj In ActiveWorkbook.Charts
        fileNum = NiceFileNumber(exportCount)
        exportCount = exportCount + 1

        'Do the export'
        chartObj.Export fileBase & "_chart" & fileNum & ".png"
    Next

    'Then, export all charts that are embedded inside normal sheets'
    For Each sheetObj In ActiveWorkbook.Worksheets
        For i = 1 To sheetObj.ChartObjects.count
            fileNum = NiceFileNumber(exportCount)
            exportCount = exportCount + 1

            'Do the export'
            sheetObj.ChartObjects(i).Activate
            ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
        Next i
    Next
End Sub

Nota: ho racchiuso i commenti in 's ad entrambe le estremità, il che non è necessario, ma aiuta ad assicurarmi che siano colorati correttamente qui.


Preferirei avere un modo per esportarlo nella stessa cartella del foglio di calcolo corrente con la semplice pressione di un pulsante
fmark

@fmark - allora è qui che entra in gioco la macro, qualcosa del tipo ActiveChart.Export ActiveWorkbook.Path & "\chart.png"(ma forse un po 'più intelligente!) in una macro associata a un pulsante della barra degli strumenti farebbe il lavoro.
DMA57361,

@fmark, mi sono annoiato e ho avuto qualche minuto, quindi ho messo insieme qualcosa di molto più completo. Dai un'occhiata alla modifica, penso che ti darà un punto di partenza davvero solido.
DMA57361,

Saluti! Lo darò un vortice.
fmark

4

Il modo migliore è salvare il file Excel come HTML.

Quindi vai alla cartella in cui sono state memorizzate le immagini e vedrai le immagini PNG che desideri.


Sono pienamente d'accordo che questo è davvero il metodo più veloce. Di gran lunga.
Jeef

3

Per convertire in modo sicuro in PNG è possibile copiare la figura da Excel, incollarla su una diapositiva in Power Point e quindi procedere come segue.

Salva con nomeAltri formati , quindi seleziona il formato desiderato. Ti verrà quindi chiesto se desideri applicarlo solo alla diapositiva corrente o a tutte le diapositive. Se si selezionano tutte le diapositive, crea una cartella nella directory specificata e salva ciascuna diapositiva nel proprio file nel formato selezionato.

Non è molto elegante, ma può essere abbastanza veloce quando hai solo bisogno dei file ed è particolarmente utile se hai già fatto una presentazione con gli stessi grafici.


2

Vecchio thread, ma nel caso in cui qualcun altro arrivi qui da Google: Excel 2011 per Mac ha un'opzione "Salva come immagine" nel menu di scelta rapida per fare esattamente questo.


Quale versione di Excel? Il mio Excel 2007 sicuramente non ha questo. Attaccare con un ufficio di 7 anni è probabilmente una "misura di risparmio".
Ogre Salmo33,

Excel 2011 per Mac è quello che sto usando.
Dave Mulligan,

0

In Excel 2010, puoi farlo tramite:

  1. Fai clic sul grafico per selezionarlo.
  2. Copia utilizzando CTRL + C o facendo clic con il pulsante destro del mouse e selezionando Copia.
  3. Passa a un programma di editing grafico (ho usato Paint.net ).
  4. Incolla.

Quindi puoi salvare l'immagine in qualsiasi formato tu voglia.


0

Se stai usando Greenshot (un software di acquisizione dello schermo), puoi copiare il grafico in Excel ( Ctrl+ C), quindi fare clic con il pulsante destro del mouse sull'icona di Greenshot, selezionare Apri immagine dagli Appunti e salvarlo. Non è necessario utilizzare l'editor grafico.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.