¿Cómo puedo guardar un gráfico en un archivo PNG o GIF en Microsoft Excel?

27

¿Cómo puedo guardar un gráfico en un archivo PNG o GIF en Microsoft Excel?

Sé que puedo guardar como un archivo HTML y usar la imagen creada allí, pero sospecho que hay una manera que no crea otro desorden de archivos que no quiero. Me complace instalar un complemento si esa es la opción recomendada.

Estoy usando Excel 2003 y 2007 si eso importa.

fmark
fuente
Aquí hay una explicación y un enlace a un complemento de Excel (gratuito) que lo hará por usted: Procedimiento mejorado de gráfico de exportación
Jon Peltier

Respuestas:

34

Excel carece de soporte accesible para el usuario para esta funcionalidad, pero puede solucionarlo fácilmente o profundizar en VBA, donde esta funcionalidad es proporciona :


Exportación "one-shot"

  • Seleccione el gráfico (todo el gráfico, no un componente interno; seleccione el borde).
  • Cópielo (ctrl-c, haga clic con el botón derecho en copiar, lo que quiera).
  • Abra MS Paint.
  • Pegue (es posible que primero desee minimizar el tamaño de la imagen, se ampliará para ajustarse, pero no se reducirá).
  • Guarda como desees.

Exportación masiva

Probablemente desee ver el uso ActiveChart.Exporten una macro VBA, esto le permite especificar una ruta de archivo y luego permite que Excel haga el trabajo.

A continuación se muestra un prototipo funcional que acabo de armar. Ejecute este y todos los gráficos del libro activo se exportarán a la misma carpeta que ese archivo, en formato PNG, junto _chart##con el nombre del archivo (donde ##hay un número creciente).

Que no se realiza ninguna comprobación de seguridad (por lo que se sobreponen a los archivos!) Y no contiene ninguna comprobación de errores. Que no va a funcionar si usted todavía no ha guardado el libro, es la ubicación de sólo lectura o cualquier otra cosa que impide que se escriba a la ubicación del archivo. Solo he probado esto en Excel 2003 (ya que eso es todo lo que tengo a mano en este momento).

En otras palabras: use bajo su propio riesgo , esto es solo un ejemplo básico de trabajo .

'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: He incluido los comentarios en 's en ambos extremos, lo cual no es necesario, pero ayuda a asegurar que estén coloreados correctamente aquí.

DMA57361
fuente
Preferiría tener una manera de exportarlo a la misma carpeta que la hoja de cálculo actual con solo presionar un botón
fmark
@fmark: entonces ahí es donde entra la macro, algo así ActiveChart.Export ActiveWorkbook.Path & "\chart.png"(¡pero quizás un poco más inteligente!) en una macro vinculada a un botón de la barra de herramientas haría el trabajo.
DMA57361
@fmark, me aburrí y tuve unos minutos, así que he preparado algo mucho más completo. Echa un vistazo a la edición, creo que te dará un punto de partida realmente sólido.
DMA57361
¡Aclamaciones! Le daré un giro.
fmark
4

La mejor manera es guardar el archivo de Excel como HTML.

Luego vaya a la carpeta donde se almacenaron las imágenes y verá las imágenes PNG que desee.

João Pimentel
fuente
Tengo que estar totalmente de acuerdo en que este es realmente el método más rápido. Con mucho.
Jeef
3

Para convertir de forma segura a PNG, puede copiar la figura de Excel, pegarla en una diapositiva en Power Point y luego hacer lo siguiente.

Guardar comoOtros formatos , luego seleccione el formato deseado. Luego le preguntará si desea aplicar esto solo a la diapositiva actual o a todas las diapositivas. Si selecciona todas las diapositivas, crea una carpeta en el directorio que especifique y guarda cada diapositiva en su propio archivo en el formato seleccionado.

No es muy elegante, pero puede ser lo suficientemente rápido cuando solo necesita los archivos, y es especialmente útil si ya ha realizado una presentación con los mismos gráficos.

sgildea
fuente
2

Hilo antiguo, pero en caso de que alguien más llegue aquí desde Google: Excel 2011 para Mac tiene una opción "Guardar como imagen" en el menú contextual para hacer exactamente esto.

Dave Mulligan
fuente
¿Qué versión de Excel? Mi Excel 2007 definitivamente no tiene esto. Seguir con una oficina de 7 años es probablemente una "medida de ahorro".
Ogre Psalm33
Excel 2011 para Mac es lo que estoy usando.
Dave Mulligan
0

En Excel 2010, puede hacer esto:

  1. Haga clic en el gráfico para seleccionarlo.
  2. Copie usando CTRL + C, o haciendo clic derecho y seleccionando Copiar.
  3. Cambie a un programa de edición de gráficos (usé Paint.net ).
  4. Pegar.

Luego puede guardar la imagen en el formato que desee.

Will Martin
fuente
0

Si está utilizando Greenshot (un software de captura de pantalla), puede copiar el gráfico en Excel ( Ctrl+ C), luego hacer clic con el botón derecho en el icono de Greenshot, seleccionar Abrir imagen desde el portapapeles y guardarlo. No es necesario usar el editor de gráficos.

gronostaj
fuente