Como posso salvar um gráfico em um arquivo PNG ou GIF no Microsoft Excel?

27

Como posso salvar um gráfico em um arquivo PNG ou GIF no Microsoft Excel?

Sei que posso salvar como um arquivo HTML e usar a imagem criada lá, mas suspeito que exista uma maneira de não criar outra confusão de arquivos que não quero. É um prazer instalar um suplemento, se essa for a opção recomendada.

Estou usando o Excel 2003 e 2007, se isso importa.

fmark
fonte
Aqui está uma explicação e um link para um Excel Add-In (livre) que vai fazer isso por você: Avançado Export Gráfico Procedimento
Jon Peltier

Respostas:

34

O Excel não oferece suporte acessível ao usuário para essa funcionalidade, mas você pode contornar isso facilmente ou acessar o VBA, onde essa funcionalidade é fornecida:


Exportação "one-shot"

  • Selecione o gráfico (o gráfico inteiro, não um componente interno; portanto, selecione a borda).
  • Copie-o (ctrl-c, clique com o botão direito do mouse em copiar, como desejar).
  • Abra o MS Paint.
  • Colar (você pode minimizar o tamanho da imagem primeiro, ela será ampliada para caber, mas não será reduzida).
  • Salve como desejado.

Exportação a granel

Você provavelmente gostaria de usar ActiveChart.Exportuma macro VBA, isso permite especificar um caminho de arquivo e, em seguida, permite que o Excel faça o trabalho.

Abaixo está um protótipo que acabei de montar. Execute este e todos os gráficos da pasta de trabalho ativa serão exportados para a mesma pasta que o arquivo, no formato PNG, _chart##anexado ao nome do arquivo (onde ##há um número crescente).

Ele não realiza nenhuma verificação de segurança (substituirá os arquivos!) E não contém nenhuma verificação de erro. Ele não vai funcionar se você ainda não tiver salvo a pasta de trabalho, a localização é somente leitura ou qualquer outra coisa que impede escrevendo para a localização do arquivo. Eu só testei isso no Excel 2003 (como é tudo o que tenho em mãos no momento).

Em outras palavras: use por seu próprio risco , este é apenas um exemplo de trabalho básico .

'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: Coloquei os comentários em 's nas duas extremidades, o que não é necessário, mas ajuda a garantir que eles sejam coloridos corretamente aqui.

DMA57361
fonte
Eu preferiria ter uma maneira de exportá-lo para a mesma pasta que a planilha atual ao pressionar um botão
fmark
@mark - então é aí que a macro entra, algo como ActiveChart.Export ActiveWorkbook.Path & "\chart.png"(mas talvez um pouco mais inteligente!) em uma macro ligada a um botão da barra de ferramentas faria o trabalho.
DMA57361
@fmark, I got bored and had a few minutes so I've thrown together something much more complete. Check out the edit, I think that'll give you a really solid starting point.
DMA57361
Felicidades! Vou dar uma volta.
fmark
4

A melhor maneira é salvar o arquivo do Excel como HTML.

Em seguida, vá para a pasta onde as imagens foram armazenadas e você verá as imagens PNG que deseja.

João Pimentel
fonte
Eu tenho que concordar plenamente que este é realmente o método mais rápido. De longe.
Jeef 30/05
3

Para converter com segurança para PNG, você pode copiar a figura do Excel, colá-la em um slide no Power Point e fazer o seguinte.

Salvar comoOutros formatos e selecione o formato desejado. Em seguida, perguntará se você deseja aplicar isso apenas ao slide atual ou a todos os slides. Se você selecionar todos os slides, ele criará uma pasta no diretório especificado e salvará cada slide em seu próprio arquivo no formato selecionado.

Não é muito elegante, mas pode ser rápido o suficiente quando você só precisa dos arquivos e é especialmente útil se você já fez uma apresentação com os mesmos gráficos.

sgildea
fonte
2

Segmento antigo, mas no caso de alguém mais vir aqui do Google: Excel 2011 para Mac tem uma opção "Salvar como imagem" no menu do botão direito para fazer exatamente isso.

Dave Mulligan
fonte
Qual versão do Excel? Meu Excel 2007 definitivamente não tem isso. Aderir a um escritório de 7 anos é provavelmente uma "medida de economia de custos".
Ogre Psalm33
Excel 2011 para Mac é o que estou usando.
Dave Mulligan
0

No Excel 2010, você pode fazer isso:

  1. Clique no gráfico para selecioná-lo.
  2. Copie usando CTRL + C ou clicando com o botão direito do mouse e selecionando Copiar.
  3. Mude para um programa de edição de gráficos (usei o Paint.net ).
  4. Colar.

Depois, você pode salvar a imagem em qualquer formato que desejar.

Will Martin
fonte
0

Se você estiver usando o Greenshot (um software de captura de tela), poderá copiar o gráfico no Excel ( Ctrl+ C), clicar com o botão direito do mouse no ícone do Greenshot, selecionar Abrir imagem da área de transferência e salvá-lo. Não há necessidade de usar o editor de gráficos.

gronostaj
fonte