Comment puis-je enregistrer un graphique dans un fichier PNG ou GIF dans Microsoft Excel?

27

Comment puis-je enregistrer un graphique dans un fichier PNG ou GIF dans Microsoft Excel?

Je sais que je peux enregistrer en tant que fichier HTML et utiliser l'image créée là-bas, mais je soupçonne qu'il existe un moyen qui ne crée pas un autre encombrement de fichiers dont je ne veux pas. Je suis heureux d'installer un complément si c'est l'option recommandée.

J'utilise Excel 2003 et 2007 si cela importe.

fmark
la source
Voici une explication et un lien vers un complément Excel (gratuit) qui le fera pour vous: Procédure de graphique d'exportation améliorée
Jon Peltier

Réponses:

34

Excel ne dispose d'aucune prise en charge accessible à l'utilisateur pour cette fonctionnalité, mais vous pouvez facilement contourner cela ou vous connecter à VBA, où cette fonctionnalité est fournie:


Exportation "one-shot"

  • Sélectionnez le graphique (l'ensemble du graphique, pas un composant interne; sélectionnez donc la bordure).
  • Copiez-le (ctrl-c, cliquez avec le bouton droit de la souris sur ce que vous voulez).
  • Ouvrez MS Paint.
  • Coller (vous souhaiterez peut-être d'abord réduire la taille de l'image, elle sera agrandie pour s'adapter, mais pas rétrécie).
  • Enregistrez comme vous le souhaitez.

Exportation en vrac

Vous voudrez probablement envisager d'utiliser ActiveChart.Exportdans une macro VBA, cela vous permet de spécifier un chemin de fichier, puis permet à Excel de faire le travail.

Voici un prototype fonctionnel que je viens de mettre en place. Exécutez-le et chaque graphique du classeur actif sera exporté dans le même dossier que ce fichier, au format PNG, avec en _chart##annexe le nom du fichier (où ##est un nombre croissant).

Il n'a pas effectuer des contrôles de sécurité (donc écrasera les fichiers!) Et ne contient aucune vérification d'erreur. Cela ne fonctionnera pas si vous n'avez pas encore enregistré le classeur, l'emplacement est en lecture seule ou toute autre chose qui empêche l'écriture à l'emplacement du fichier. Je n'ai testé cela que dans Excel 2003 (car c'est tout ce que j'ai à portée de main pour le moment).

En d'autres termes: utilisez à vos risques et périls , il s'agit uniquement d'un exemple de travail de 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

Remarque: J'ai enfermé les commentaires dans les 's aux deux extrémités, ce qui n'est pas nécessaire, mais permet de s'assurer qu'ils sont correctement colorés ici.

DMA57361
la source
Je préférerais avoir un moyen de l'exporter dans le même dossier que la feuille de calcul actuelle en appuyant sur un bouton
fmark
@fmark - c'est là que la macro entre en jeu, quelque chose comme ActiveChart.Export ActiveWorkbook.Path & "\chart.png"(mais peut-être un peu plus intelligent!) dans une macro liée à un bouton de la barre d'outils ferait le travail.
DMA57361
@fmark, je me suis ennuyé et j'ai eu quelques minutes donc j'ai rassemblé quelque chose de beaucoup plus complet. Découvrez l'édition, je pense que cela vous donnera un point de départ vraiment solide.
DMA57361
À votre santé! Je vais lui faire un tourbillon.
fmark
4

La meilleure façon est d'enregistrer le fichier Excel au format HTML.

Ensuite, allez dans le dossier où les images ont été stockées et vous verrez les images PNG que vous souhaitez.

João Pimentel
la source
Je suis tout à fait d'accord pour dire que c'est vraiment la méthode la plus rapide. De loin.
Jeef
3

Pour convertir en PNG en toute sécurité, vous pouvez copier la figure depuis Excel, la coller sur une diapositive dans Power Point, puis procédez comme suit.

Enregistrer sousAutres formats , puis sélectionnez le format souhaité. Il vous demandera ensuite si vous souhaitez appliquer cela à la diapositive actuelle uniquement ou à toutes les diapositives. Si vous sélectionnez toutes les diapositives, il crée un dossier dans le répertoire que vous spécifiez et enregistre chaque diapositive dans son propre fichier au format sélectionné.

Ce n'est pas très élégant, mais cela peut être assez rapide lorsque vous avez juste besoin des fichiers, et est particulièrement utile si vous avez déjà fait une présentation avec les mêmes graphiques.

sgildea
la source
2

Ancien thread, mais juste au cas où quelqu'un d'autre atterrirait ici de Google: Excel 2011 pour Mac a une option "Enregistrer comme image" dans le menu contextuel pour faire exactement cela.

Dave Mulligan
la source
Quelle version d'Excel? Mon Excel 2007 ne l'a définitivement pas. S'en tenir à un bureau de 7 ans est probablement une «mesure d'économie».
Ogre Psalm33
Excel 2011 pour Mac est ce que j'utilise.
Dave Mulligan
0

Dans Excel 2010, vous pouvez le faire en:

  1. Cliquez sur le graphique pour le sélectionner.
  2. Copiez en utilisant CTRL + C, ou en cliquant avec le bouton droit et en sélectionnant Copier.
  3. Passez à un programme d'édition graphique (j'ai utilisé Paint.net ).
  4. Coller.

Ensuite, vous pouvez enregistrer l'image dans le format de votre choix.

Will Martin
la source
0

Si vous utilisez Greenshot (un logiciel de capture d'écran), vous pouvez copier le graphique dans Excel ( Ctrl+ C), puis cliquer avec le bouton droit sur l'icône de Greenshot, sélectionner Ouvrir l'image depuis le presse - papiers et l'enregistrer. Pas besoin d'utiliser un éditeur graphique.

gronostaj
la source