web-dev-qa-db-fra.com

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

Comment 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 à cet emplacement, mais je suppose qu'il existe un moyen de ne pas créer d'autres fichiers encombrés que je ne souhaite pas. Je suis heureux d'installer un complément si c'est l'option recommandée.

J'utilise Excel 2003 et 2007 si cela compte.

27
fmark

Excel ne dispose d'aucun support accessible à l'utilisateur pour cette fonctionnalité, mais vous pouvez soit contourner ce problème, soit accéder à 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, copier avec le bouton droit de la souris, comme vous voulez).
  • Ouvrez MS Paint.
  • Coller (vous voudrez peut-être tout d’abord réduire la taille de l’image, elle sera agrandie pour s’adapter, mais ne sera pas réduite).
  • Enregistrer comme vous le souhaitez.

Exportation en vrac

Vous voudrez probablement utiliser ActiveChart.Export dans une macro VBA, cela vous permet de spécifier un chemin de fichier, puis de laisser Excel faire le travail.

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

ne n'effectue aucune vérification de sécurité (donc écrasera les fichiers!) Et ne ne contient aucune vérification d'erreur. Cela ne fonctionnera pas si vous n'avez pas encore enregistré le classeur, si l'emplacement est en lecture seule ou tout autre élément empêchant l'écriture dans l'emplacement du fichier. Je n’ai testé cela que dans Excel 2003 (c’est tout ce que j’ai sous la main pour le moment).

En d'autres termes: Utilisez-le à vos risques et périls , il s'agit 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 inséré les commentaires dans '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.

34
DMA57361

Le meilleur moyen consiste à 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 voulez.

4
João Pimentel

Pour convertir en toute sécurité au format PNG, vous pouvez copier la figure à partir d'Excel, la coller sur une diapositive dans Power Point, puis procéder comme suit.

Enregistrer sous Autres formats , puis sélectionnez le format de votre choix. Il vous demandera ensuite si vous souhaitez appliquer cela à la diapositive actuelle 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 quand vous avez juste besoin des fichiers, et c'est particulièrement utile si vous avez déjà fait une présentation avec les mêmes graphiques.

3
sgildea

Ancien fil de discussion, mais au cas où quelqu'un arriverait ici par Google: Excel 2011 pour Mac propose l'option "Enregistrer en tant qu'image" dans le menu contextuel pour effectuer cette opération.

2
Dave Mulligan

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 de la souris et en sélectionnant Copier.
  3. Basculez vers un programme d'édition graphique (j'ai utilisé Paint.net ).
  4. Coller.

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

0
Will Martin

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

0
gronostaj